diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/min.asm.js | 18 | ||||
-rw-r--r-- | test/min.fromasm | 13 | ||||
-rw-r--r-- | test/min.fromasm.imprecise | 13 |
3 files changed, 44 insertions, 0 deletions
diff --git a/test/min.asm.js b/test/min.asm.js index 77e54caab..ed5d186f5 100644 --- a/test/min.asm.js +++ b/test/min.asm.js @@ -6,6 +6,17 @@ function (global, env, buffer) { var fr = global.Math.fround; + var tDP = env.tempDoublePtr | 0; + + var h8 = new global.Int8Array(buffer); + var h16 = new global.Int16Array(buffer); + var h32 = new global.Int32Array(buffer); + var hU8 = new global.Uint8Array(buffer); + var hU16 = new global.Uint16Array(buffer); + var hU32 = new global.Uint32Array(buffer); + var hF32 = new global.Float32Array(buffer); + var hF64 = new global.Float64Array(buffer); + function floats(f) { f = fr(f); var t = fr(0); @@ -18,6 +29,13 @@ function (global, env, buffer) { n = fr(-(c[k >> 2] = p, fr(g[k >> 2]))); return n; } + function bitcasts(i, f) { + i = i | 0; + f = Math_fround(f); + (h32[tDP >> 2] = i, fr(hF32[tDP >> 2])); // i32->f32 + (h32[tDP >> 2] = i, +hF32[tDP >> 2]); // i32->f32, no fround + (hF32[tDP >> 2] = f, h32[tDP >> 2] | 0); // f32->i32 + } return { floats: floats }; } diff --git a/test/min.fromasm b/test/min.fromasm index 839fd167c..564980a96 100644 --- a/test/min.fromasm +++ b/test/min.fromasm @@ -30,4 +30,17 @@ (get_local $n) ) ) + (func $bitcasts (param $i i32) (param $f f32) + (f32.reinterpret/i32 + (get_local $i) + ) + (f64.promote/f32 + (f32.reinterpret/i32 + (get_local $i) + ) + ) + (i32.reinterpret/f32 + (get_local $f) + ) + ) ) diff --git a/test/min.fromasm.imprecise b/test/min.fromasm.imprecise index 839fd167c..564980a96 100644 --- a/test/min.fromasm.imprecise +++ b/test/min.fromasm.imprecise @@ -30,4 +30,17 @@ (get_local $n) ) ) + (func $bitcasts (param $i i32) (param $f f32) + (f32.reinterpret/i32 + (get_local $i) + ) + (f64.promote/f32 + (f32.reinterpret/i32 + (get_local $i) + ) + ) + (i32.reinterpret/f32 + (get_local $f) + ) + ) ) |