var ins = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`
( module ( func ( export "f64x2.add" ) ( param v128 v128 ) ( result v128 ) ( f64x2.add ( local.get 0 ) ( local.get 1 ) ) ) ( func ( export "f64x2.sub" ) ( param v128 v128 ) ( result v128 ) ( f64x2.sub ( local.get 0 ) ( local.get 1 ) ) ) ( func ( export "f64x2.mul" ) ( param v128 v128 ) ( result v128 ) ( f64x2.mul ( local.get 0 ) ( local.get 1 ) ) ) ( func ( export "f64x2.div" ) ( param v128 v128 ) ( result v128 ) ( f64x2.div ( local.get 0 ) ( local.get 1 ) ) ) ( func ( export "f64x2.neg" ) ( param v128 ) ( result v128 ) ( f64x2.neg ( local.get 0 ) ) ) ( func ( export "f64x2.sqrt" ) ( param v128 ) ( result v128 ) ( f64x2.sqrt ( local.get 0 ) ) ) )
`)));
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789 0123456789 ) ( v128.const f64x2 0123456789 0123456789 )))
(local.set $expected ( v128.const f64x2 246913578.0 246913578.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e019 0123456789e019 ) ( v128.const f64x2 0123456789e019 0123456789e019 )))
(local.set $expected ( v128.const f64x2 2.46913578e+27 2.46913578e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e+019 0123456789e+019 ) ( v128.const f64x2 0123456789e+019 0123456789e+019 )))
(local.set $expected ( v128.const f64x2 2.46913578e+27 2.46913578e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e-019 0123456789e-019 ) ( v128.const f64x2 0123456789e-019 0123456789e-019 )))
(local.set $expected ( v128.const f64x2 2.46913578e-11 2.46913578e-11 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789. 0123456789. ) ( v128.const f64x2 0123456789. 0123456789. )))
(local.set $expected ( v128.const f64x2 246913578.0 246913578.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e019 0123456789.e019 ) ( v128.const f64x2 0123456789.e019 0123456789.e019 )))
(local.set $expected ( v128.const f64x2 2.46913578e+27 2.46913578e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e+019 0123456789.e+019 ) ( v128.const f64x2 0123456789.e+019 0123456789.e+019 )))
(local.set $expected ( v128.const f64x2 2.46913578e+27 2.46913578e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e-019 0123456789.e-019 ) ( v128.const f64x2 0123456789.e-019 0123456789.e-019 )))
(local.set $expected ( v128.const f64x2 2.46913578e-11 2.46913578e-11 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 ) ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 )))
(local.set $expected ( v128.const f64x2 246913578.02469134 246913578.02469134 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 ) ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 )))
(local.set $expected ( v128.const f64x2 2.4691357802469137e+27 2.4691357802469137e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 ) ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 )))
(local.set $expected ( v128.const f64x2 2.4691357802469137e+27 2.4691357802469137e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 ) ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 )))
(local.set $expected ( v128.const f64x2 2.4691357802469137e-11 2.4691357802469137e-11 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+81 0x1.23456789abcdfp+81 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+100 0x1.23456789abcdfp+100 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+100 0x1.23456789abcdfp+100 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+62 0x1.23456789abcdfp+62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. ) ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+81 0x1.23456789abcdfp+81 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+100 0x1.23456789abcdfp+100 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+100 0x1.23456789abcdfp+100 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+62 0x1.23456789abcdfp+62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+81 0x1.23456789abcdfp+81 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+100 0x1.23456789abcdfp+100 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+100 0x1.23456789abcdfp+100 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.add" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.23456789abcdfp+62 0x1.23456789abcdfp+62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.fffffffffffffp-1022 0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.fffffffffffffp-1022 0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000001p-1022 -0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000001p-1022 -0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789 0123456789 ) ( v128.const f64x2 0123456789 0123456789 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e019 0123456789e019 ) ( v128.const f64x2 0123456789e019 0123456789e019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e+019 0123456789e+019 ) ( v128.const f64x2 0123456789e+019 0123456789e+019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e-019 0123456789e-019 ) ( v128.const f64x2 0123456789e-019 0123456789e-019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789. 0123456789. ) ( v128.const f64x2 0123456789. 0123456789. )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e019 0123456789.e019 ) ( v128.const f64x2 0123456789.e019 0123456789.e019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e+019 0123456789.e+019 ) ( v128.const f64x2 0123456789.e+019 0123456789.e+019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e-019 0123456789.e-019 ) ( v128.const f64x2 0123456789.e-019 0123456789.e-019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 ) ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 ) ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 ) ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 ) ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 )))
(local.set $expected ( v128.const f64x2 0.0 0.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. ) ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sub" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-2 0x1.0000000000000p-2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-2 -0x1.0000000000000p-2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-2 -0x1.0000000000000p-2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-2 0x1.0000000000000p-2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.3bd3cc9be45dep+5 0x1.3bd3cc9be45dep+5 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.3bd3cc9be45dep+5 -0x1.3bd3cc9be45dep+5 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.3bd3cc9be45dep+5 -0x1.3bd3cc9be45dep+5 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.3bd3cc9be45dep+5 0x1.3bd3cc9be45dep+5 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789 0123456789 ) ( v128.const f64x2 0123456789 0123456789 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e+16 1.524157875019052e+16 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e019 0123456789e019 ) ( v128.const f64x2 0123456789e019 0123456789e019 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e+54 1.524157875019052e+54 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e+019 0123456789e+019 ) ( v128.const f64x2 0123456789e+019 0123456789e+019 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e+54 1.524157875019052e+54 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e-019 0123456789e-019 ) ( v128.const f64x2 0123456789e-019 0123456789e-019 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e-22 1.524157875019052e-22 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789. 0123456789. ) ( v128.const f64x2 0123456789. 0123456789. )))
(local.set $expected ( v128.const f64x2 1.524157875019052e+16 1.524157875019052e+16 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e019 0123456789.e019 ) ( v128.const f64x2 0123456789.e019 0123456789.e019 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e+54 1.524157875019052e+54 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e+019 0123456789.e+019 ) ( v128.const f64x2 0123456789.e+019 0123456789.e+019 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e+54 1.524157875019052e+54 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e-019 0123456789.e-019 ) ( v128.const f64x2 0123456789.e-019 0123456789.e-019 )))
(local.set $expected ( v128.const f64x2 1.524157875019052e-22 1.524157875019052e-22 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 ) ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 )))
(local.set $expected ( v128.const f64x2 1.5241578753238834e+16 1.5241578753238834e+16 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 ) ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 )))
(local.set $expected ( v128.const f64x2 1.5241578753238838e+54 1.5241578753238838e+54 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 ) ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 )))
(local.set $expected ( v128.const f64x2 1.5241578753238838e+54 1.5241578753238838e+54 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 ) ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 )))
(local.set $expected ( v128.const f64x2 1.524157875323884e-22 1.524157875323884e-22 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+160 0x1.4b66dc33f6acep+160 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+198 0x1.4b66dc33f6acep+198 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+198 0x1.4b66dc33f6acep+198 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+122 0x1.4b66dc33f6acep+122 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. ) ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+160 0x1.4b66dc33f6acep+160 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+198 0x1.4b66dc33f6acep+198 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+198 0x1.4b66dc33f6acep+198 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+122 0x1.4b66dc33f6acep+122 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+160 0x1.4b66dc33f6acep+160 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+198 0x1.4b66dc33f6acep+198 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+198 0x1.4b66dc33f6acep+198 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.mul" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.4b66dc33f6acep+122 0x1.4b66dc33f6acep+122 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.28be60db93910p-1022 0x0.28be60db93910p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.28be60db93910p-1022 -0x0.28be60db93910p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+52 0x1.0000000000000p+52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+52 0x1.0000000000000p+52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.28be60db93910p-1022 -0x0.28be60db93910p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.28be60db93910p-1022 0x0.28be60db93910p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+52 -0x1.0000000000000p+52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+52 -0x1.0000000000000p+52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1021 0x1.0000000000000p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1021 -0x1.0000000000000p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.45f306dc9c883p-4 0x1.45f306dc9c883p-4 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.45f306dc9c883p-4 -0x1.45f306dc9c883p-4 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.2000000000000p-1022 0x0.2000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.2000000000000p-1022 -0x0.2000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1021 -0x1.0000000000000p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1021 0x1.0000000000000p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.45f306dc9c883p-4 -0x1.45f306dc9c883p-4 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.45f306dc9c883p-4 0x1.45f306dc9c883p-4 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.2000000000000p-1022 -0x0.2000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.2000000000000p-1022 0x0.2000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1022 0x1.0000000000000p+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1022 -0x1.0000000000000p+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.45f306dc9c883p-3 0x1.45f306dc9c883p-3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.45f306dc9c883p-3 -0x1.45f306dc9c883p-3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.4000000000000p-1022 0x0.4000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.4000000000000p-1022 -0x0.4000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1022 -0x1.0000000000000p+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1022 0x1.0000000000000p+1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.45f306dc9c883p-3 -0x1.45f306dc9c883p-3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.45f306dc9c883p-3 0x1.45f306dc9c883p-3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.4000000000000p-1022 -0x0.4000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.4000000000000p-1022 0x0.4000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d19p-1022 0x1.921fb54442d19p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d19p-1022 -0x1.921fb54442d19p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d19p-1022 -0x1.921fb54442d19p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d19p-1022 0x1.921fb54442d19p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.45f306dc9c882p+1021 0x1.45f306dc9c882p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.45f306dc9c882p+1021 -0x1.45f306dc9c882p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.45f306dc9c882p+1021 -0x1.45f306dc9c882p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.45f306dc9c882p+1021 0x1.45f306dc9c882p+1021 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-52 0x1.0000000000000p-52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-52 -0x1.0000000000000p-52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000002p-1022 -0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-52 0x1.0000000000000p-52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-52 -0x1.0000000000000p-52 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000002p-1022 -0x0.0000000000002p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan ) ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789 0123456789 ) ( v128.const f64x2 0123456789 0123456789 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e019 0123456789e019 ) ( v128.const f64x2 0123456789e019 0123456789e019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e+019 0123456789e+019 ) ( v128.const f64x2 0123456789e+019 0123456789e+019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e-019 0123456789e-019 ) ( v128.const f64x2 0123456789e-019 0123456789e-019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789. 0123456789. ) ( v128.const f64x2 0123456789. 0123456789. )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e019 0123456789.e019 ) ( v128.const f64x2 0123456789.e019 0123456789.e019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e+019 0123456789.e+019 ) ( v128.const f64x2 0123456789.e+019 0123456789.e+019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e-019 0123456789.e-019 ) ( v128.const f64x2 0123456789.e-019 0123456789.e-019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 ) ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 ) ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 ) ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 ) ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. ) ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.div" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 ) ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0p+0 -0x0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-511 0x1.0000000000000p-511 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.6a09e667f3bcdp-1 0x1.6a09e667f3bcdp-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.40d931ff62705p+1 0x1.40d931ff62705p+1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+511 0x1.fffffffffffffp+511 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-537 0x1.0000000000000p-537 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-537 0x1.0000000000000p-537 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789 0123456789 )))
(local.set $expected ( v128.const f64x2 11111.111060555555 11111.111060555555 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e019 0123456789e019 )))
(local.set $expected ( v128.const f64x2 35136418286444.62 35136418286444.62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e+019 0123456789e+019 )))
(local.set $expected ( v128.const f64x2 35136418286444.62 35136418286444.62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e-019 0123456789e-019 )))
(local.set $expected ( v128.const f64x2 3.5136418286444623e-06 3.5136418286444623e-06 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789. 0123456789. )))
(local.set $expected ( v128.const f64x2 11111.111060555555 11111.111060555555 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e019 0123456789.e019 )))
(local.set $expected ( v128.const f64x2 35136418286444.62 35136418286444.62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e+019 0123456789.e+019 )))
(local.set $expected ( v128.const f64x2 35136418286444.62 35136418286444.62 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e-019 0123456789.e-019 )))
(local.set $expected ( v128.const f64x2 3.5136418286444623e-06 3.5136418286444623e-06 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 )))
(local.set $expected ( v128.const f64x2 11111.11106111111 11111.11106111111 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 )))
(local.set $expected ( v128.const f64x2 35136418288201.445 35136418288201.445 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 )))
(local.set $expected ( v128.const f64x2 35136418288201.445 35136418288201.445 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 )))
(local.set $expected ( v128.const f64x2 3.513641828820144e-06 3.513641828820144e-06 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.1111111111111p+40 0x1.1111111111111p+40 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+49 0x1.822cb17ff2eb8p+49 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+49 0x1.822cb17ff2eb8p+49 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+30 0x1.822cb17ff2eb8p+30 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. )))
(local.set $expected ( v128.const f64x2 0x1.1111111111111p+40 0x1.1111111111111p+40 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+49 0x1.822cb17ff2eb8p+49 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+49 0x1.822cb17ff2eb8p+49 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+30 0x1.822cb17ff2eb8p+30 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 0x1.1111111111111p+40 0x1.1111111111111p+40 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+49 0x1.822cb17ff2eb8p+49 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+49 0x1.822cb17ff2eb8p+49 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.sqrt" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 0x1.822cb17ff2eb8p+30 0x1.822cb17ff2eb8p+30 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0p+0 0x0p+0 )))
(local.set $expected ( v128.const f64x2 -0x0.0p+0 -0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x0p+0 -0x0p+0 )))
(local.set $expected ( v128.const f64x2 0x0.0p+0 0x0.0p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1022 0x1p-1022 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1022 -0x1p-1022 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p-1 0x1p-1 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p-1 -0x1p-1 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1p+0 0x1p+0 )))
(local.set $expected ( v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1p+0 -0x1p+0 )))
(local.set $expected ( v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2 )))
(local.set $expected ( v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023 )))
(local.set $expected ( v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022 )))
(local.set $expected ( v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 inf inf )))
(local.set $expected ( v128.const f64x2 -inf -inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -inf -inf )))
(local.set $expected ( v128.const f64x2 inf inf ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 -nan -nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 nan nan )))
(local.set $expected ( v128.const f64x2 -nan -nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 -nan -nan )))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789 0123456789 )))
(local.set $expected ( v128.const f64x2 -123456789.0 -123456789.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e019 0123456789e019 )))
(local.set $expected ( v128.const f64x2 -1.23456789e+27 -1.23456789e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e+019 0123456789e+019 )))
(local.set $expected ( v128.const f64x2 -1.23456789e+27 -1.23456789e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789e-019 0123456789e-019 )))
(local.set $expected ( v128.const f64x2 -1.23456789e-11 -1.23456789e-11 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789. 0123456789. )))
(local.set $expected ( v128.const f64x2 -123456789.0 -123456789.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e019 0123456789.e019 )))
(local.set $expected ( v128.const f64x2 -1.23456789e+27 -1.23456789e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e+019 0123456789.e+019 )))
(local.set $expected ( v128.const f64x2 -1.23456789e+27 -1.23456789e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.e-019 0123456789.e-019 )))
(local.set $expected ( v128.const f64x2 -1.23456789e-11 -1.23456789e-11 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789 0123456789.0123456789 )))
(local.set $expected ( v128.const f64x2 -123456789.01234567 -123456789.01234567 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e019 0123456789.0123456789e019 )))
(local.set $expected ( v128.const f64x2 -1.2345678901234569e+27 -1.2345678901234569e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e+019 0123456789.0123456789e+019 )))
(local.set $expected ( v128.const f64x2 -1.2345678901234569e+27 -1.2345678901234569e+27 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0123456789.0123456789e-019 0123456789.0123456789e-019 )))
(local.set $expected ( v128.const f64x2 -1.2345678901234568e-11 -1.2345678901234568e-11 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+80 -0x1.23456789abcdfp+80 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+99 -0x1.23456789abcdfp+99 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+99 -0x1.23456789abcdfp+99 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+61 -0x1.23456789abcdfp+61 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef. 0x0123456789ABCDEFabcdef. )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+80 -0x1.23456789abcdfp+80 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p019 0x0123456789ABCDEFabcdef.p019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+99 -0x1.23456789abcdfp+99 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p+019 0x0123456789ABCDEFabcdef.p+019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+99 -0x1.23456789abcdfp+99 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.p-019 0x0123456789ABCDEFabcdef.p-019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+61 -0x1.23456789abcdfp+61 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdef )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+80 -0x1.23456789abcdfp+80 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+99 -0x1.23456789abcdfp+99 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp+019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+99 -0x1.23456789abcdfp+99 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2.neg" (func $f (param v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 0x0123456789ABCDEFabcdef.0123456789ABCDEFabcdefp-019 )))
(local.set $expected ( v128.const f64x2 -0x1.23456789abcdfp+61 -0x1.23456789abcdfp+61 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var ins = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`
( module ( func ( export "f64x2_add_arith" ) ( result v128 ) ( f64x2.add ( v128.const f64x2 nan:0x8000000000000 1.0 ) ( v128.const f64x2 nan 1.0 ) ) ) ( func ( export "f64x2_div_mixed" ) ( result v128 ) ( f64x2.div ( v128.const f64x2 nan 1.0 ) ( v128.const f64x2 2.0 -nan:0x8000000000000 ) ) ) ( func ( export "f64x2_mul_mixed" ) ( result v128 ) ( f64x2.mul ( v128.const f64x2 nan:0x8000000000000 1.0 ) ( v128.const f64x2 2.0 nan ) ) ) ( func ( export "f64x2_neg_canon" ) ( result v128 ) ( f64x2.neg ( v128.const f64x2 nan 1.0 ) ) ) ( func ( export "f64x2_sqrt_canon" ) ( result v128 ) ( f64x2.sqrt ( v128.const f64x2 4.0 -nan ) ) ) ( func ( export "f64x2_sub_arith" ) ( result v128 ) ( f64x2.sub ( v128.const f64x2 1.0 -1.0 ) ( v128.const f64x2 -nan 1.0 ) ) ) )
`)));
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2_add_arith" (func $f (param ) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ))
(local.set $expected ( v128.const f64x2 nan 2.0 ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0xFFFFFFFF 0xFFFFFFFF)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0xFFFFFFFF 0xFFFFFFFF)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2_div_mixed" (func $f (param ) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2_mul_mixed" (func $f (param ) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ))
(local.set $expected ( v128.const f64x2 nan nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2_neg_canon" (func $f (param ) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ))
(local.set $expected ( v128.const f64x2 nan -1.0 ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0xFFFFFFFF 0xFFFFFFFF)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0xFFFFFFFF 0xFFFFFFFF)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2_sqrt_canon" (func $f (param ) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ))
(local.set $expected ( v128.const f64x2 2.0 nan ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0xFFFFFFFF 0xFFFFFFFF  0 0x7FF80000)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0xFFFFFFFF 0xFFFFFFFF  0 0x7FF80000)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "f64x2_sub_arith" (func $f (param ) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ))
(local.set $expected ( v128.const f64x2 nan -2.0 ))

(local.set $result (v128.and (local.get $result) (v128.const i32x4  0 0x7FF80000  0xFFFFFFFF 0xFFFFFFFF)))
(local.set $expected (v128.and (local.get $expected) (v128.const i32x4  0 0x7FF80000  0xFFFFFFFF 0xFFFFFFFF)))

(local.set $cmpresult (i32x4.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func ( result v128 ) ( f64x2.neg ( i64.const 0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func ( result v128 ) ( f64x2.sqrt ( i64.const 0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func ( result v128 ) ( f64x2.add ( i64.const 0 ) ( f64.const 0.0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func ( result v128 ) ( f64x2.sub ( i64.const 0 ) ( f64.const 0.0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func ( result v128 ) ( f64x2.mul ( i64.const 0 ) ( f64.const 0.0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func ( result v128 ) ( f64x2.div ( i64.const 0 ) ( f64.const 0.0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.neg-arg-empty ( result v128 ) ( f64x2.neg ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.sqrt-arg-empty ( result v128 ) ( f64x2.sqrt ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.add-1st-arg-empty ( result v128 ) ( f64x2.add ( v128.const f64x2 0 0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.add-arg-empty ( result v128 ) ( f64x2.add ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.sub-1st-arg-empty ( result v128 ) ( f64x2.sub ( v128.const f64x2 0 0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.sub-arg-empty ( result v128 ) ( f64x2.sub ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.mul-1st-arg-empty ( result v128 ) ( f64x2.mul ( v128.const f64x2 0 0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.mul-arg-empty ( result v128 ) ( f64x2.mul ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.div-1st-arg-empty ( result v128 ) ( f64x2.div ( v128.const f64x2 0 0 ) ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var thrown = false;
var saved;
var bin = wasmTextToBinary(`
( module ( func $f64x2.div-arg-empty ( result v128 ) ( f64x2.div ) ) )
`);
assertEq(WebAssembly.validate(bin), false);
try { new WebAssembly.Module(bin) } catch (e) { thrown = true; saved = e; }
assertEq(thrown, true)
assertEq(saved instanceof WebAssembly.CompileError, true)
var ins = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`
( module ( func ( export "add-sub" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.add ( f64x2.sub ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "div-add" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.div ( f64x2.add ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "div-mul" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.div ( f64x2.mul ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "div-sub" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.div ( f64x2.sub ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "mul-add" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.mul ( f64x2.add ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "mul-div" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.mul ( f64x2.div ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "mul-sub" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.mul ( f64x2.sub ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "sub-add" ) ( param v128 v128 v128 ) ( result v128 ) ( f64x2.sub ( f64x2.add ( local.get 0 ) ( local.get 1 ) ) ( local.get 2 ) ) ) ( func ( export "add-neg" ) ( param v128 v128 ) ( result v128 ) ( f64x2.add ( f64x2.neg ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "add-sqrt" ) ( param v128 v128 ) ( result v128 ) ( f64x2.add ( f64x2.sqrt ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "div-neg" ) ( param v128 v128 ) ( result v128 ) ( f64x2.div ( f64x2.neg ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "div-sqrt" ) ( param v128 v128 ) ( result v128 ) ( f64x2.div ( f64x2.sqrt ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "mul-neg" ) ( param v128 v128 ) ( result v128 ) ( f64x2.mul ( f64x2.neg ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "mul-sqrt" ) ( param v128 v128 ) ( result v128 ) ( f64x2.mul ( f64x2.sqrt ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "sub-neg" ) ( param v128 v128 ) ( result v128 ) ( f64x2.sub ( f64x2.neg ( local.get 0 ) ) ( local.get 1 ) ) ) ( func ( export "sub-sqrt" ) ( param v128 v128 ) ( result v128 ) ( f64x2.sub ( f64x2.sqrt ( local.get 0 ) ) ( local.get 1 ) ) ) )
`)));
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "add-sub" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.25 0.25 ) ( v128.const f64x2 0.125 0.125 )))
(local.set $expected ( v128.const f64x2 1.0 1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "div-add" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.125 0.125 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 5.0 5.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "div-mul" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 4 4 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 18.0 18.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "div-sub" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.125 0.125 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 4.0 4.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "mul-add" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.25 1.25 ) ( v128.const f64x2 0.25 0.25 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 0.375 0.375 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "mul-div" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.125 0.125 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 2.25 2.25 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "mul-sub" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.125 0.125 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 0.25 0.25 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "sub-add" (func $f (param v128 v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.25 0.25 ) ( v128.const f64x2 0.125 0.125 )))
(local.set $expected ( v128.const f64x2 1.25 1.25 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "add-neg" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.125 0.125 )))
(local.set $expected ( v128.const f64x2 -1.0 -1.0 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "add-sqrt" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 2.25 2.25 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 1.75 1.75 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "div-neg" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.5 1.5 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 -6 -6 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "div-sqrt" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 2.25 2.25 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 6 6 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "mul-neg" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.5 1.5 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 -0.375 -0.375 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "mul-sqrt" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 2.25 2.25 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 0.375 0.375 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "sub-neg" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 1.125 1.125 ) ( v128.const f64x2 0.125 0.125 )))
(local.set $expected ( v128.const f64x2 -1.25 -1.25 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)
var run = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`

(module
  (import "" "sub-sqrt" (func $f (param v128 v128) (result v128)))
  (func (export "run") (result i32) 
(local $result v128)
(local $expected v128)
(local $cmpresult v128)

(local.set $result (call $f ( v128.const f64x2 2.25 2.25 ) ( v128.const f64x2 0.25 0.25 )))
(local.set $expected ( v128.const f64x2 1.25 1.25 ))

(local.set $cmpresult (f64x2.eq (local.get $result) (local.get $expected)))
(i8x16.all_true (local.get $cmpresult))))

`)), {'':ins.exports});
assertEq(run.exports.run(), 1)

