summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/regress/bug1762899.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/regress/bug1762899.js')
-rw-r--r--js/src/jit-test/tests/wasm/regress/bug1762899.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/regress/bug1762899.js b/js/src/jit-test/tests/wasm/regress/bug1762899.js
new file mode 100644
index 0000000000..3938c93a02
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/regress/bug1762899.js
@@ -0,0 +1,34 @@
+var ins = wasmEvalText(`
+(module
+ (func (export "copysign_f64") (param f64 f64) (result f64)
+ f64.const 0x1.921fb54442d18p+0 (;=1.5708;)
+ local.get 0
+ f64.copysign
+ )
+ (func (export "copysign_f32") (param f32 f32) (result f32)
+ f32.const 0x1.921fb54442d18p+0 (;=1.5708;)
+ local.get 0
+ f32.copysign
+ )
+ (func (export "copysign_f64_2") (param f64 f64) (result f64)
+ local.get 1
+ f64.const 0x1.921fb54442d18p+0 (;=1.5708;)
+ f64.copysign
+ )
+ (func (export "copysign_f32_2") (param f32 f32) (result f32)
+ local.get 1
+ f32.const -0x1.921fb54442d18p+0 (;=1.5708;)
+ f32.copysign
+ )
+
+)
+`);
+
+assertEq(ins.exports.copysign_f64(1, 0), 1.5707963267948966);
+assertEq(ins.exports.copysign_f64(-1, 0), -1.5707963267948966);
+assertEq(ins.exports.copysign_f32(1, 0), 1.5707963705062866);
+assertEq(ins.exports.copysign_f32(-1, 0), -1.5707963705062866);
+assertEq(ins.exports.copysign_f64_2(0, 1), 1);
+assertEq(ins.exports.copysign_f64_2(0, -1), 1);
+assertEq(ins.exports.copysign_f32_2(0, 1), -1);
+assertEq(ins.exports.copysign_f32_2(0, -1), -1);