summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_7/SIMD/bug953270.js
blob: db6a0d7cba2675581e8f670177809a30af618cd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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);