diff options
Diffstat (limited to 'js/src/tests/ecma_7/SIMD/bug953270.js')
-rw-r--r-- | js/src/tests/ecma_7/SIMD/bug953270.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/tests/ecma_7/SIMD/bug953270.js b/js/src/tests/ecma_7/SIMD/bug953270.js new file mode 100644 index 000000000..db6a0d7cb --- /dev/null +++ b/js/src/tests/ecma_7/SIMD/bug953270.js @@ -0,0 +1,24 @@ +// |reftest| skip-if(!this.hasOwnProperty("SIMD")) + +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +// Check that NaN normalization is applied when extracting the x lane +// out, after bit conversion has occurred. + +var Int32x4 = SIMD.Int32x4; +var a = Int32x4((4294967295), 200, 300, 400); +var c = SIMD.Float32x4.fromInt32x4Bits(a); + +// NaN canonicalization occurs when extracting out x lane: +assertEq(SIMD.Float32x4.extractLane(c, 0), NaN); + +// but underlying bits are faithfully transmitted +// (though reinterpreted as a signed integer): +var d = SIMD.Int32x4.fromFloat32x4Bits(c); +assertEq(SIMD.Int32x4.extractLane(d, 0), -1); + +if (typeof reportCompare === "function") + reportCompare(true, true); |