mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1108807: Group SIMD.js shift tests; r=till
This commit is contained in:
parent
38ea6ab216
commit
5c7fc3839d
@ -1,35 +0,0 @@
|
||||
// |reftest| skip-if(!this.hasOwnProperty("SIMD"))
|
||||
var BUGNUMBER = 996076;
|
||||
var float32x4 = SIMD.float32x4;
|
||||
var int32x4 = SIMD.int32x4;
|
||||
|
||||
var summary = 'int32x4 lsh';
|
||||
|
||||
function test() {
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
for (var bits = 0; bits < 32; bits++) {
|
||||
var a = int32x4(-1, 2, -3, 4);
|
||||
var c = SIMD.int32x4.shiftLeftByScalar(a, bits);
|
||||
assertEq(c.x, -1 << bits);
|
||||
assertEq(c.y, 2 << bits);
|
||||
assertEq(c.z, -3 << bits);
|
||||
assertEq(c.w, 4 << bits);
|
||||
}
|
||||
|
||||
var INT32_MAX = Math.pow(2, 31) - 1;
|
||||
var INT32_MIN = -Math.pow(2, 31);
|
||||
|
||||
var d = int32x4(INT32_MAX, INT32_MIN, INT32_MAX, INT32_MIN);
|
||||
var f = SIMD.int32x4.shiftLeftByScalar(d, 1);
|
||||
assertEq(f.x, (INT32_MAX << 1) | 0);
|
||||
assertEq(f.y, (INT32_MIN << 1) | 0);
|
||||
assertEq(f.z, (INT32_MAX << 1) | 0);
|
||||
assertEq(f.w, (INT32_MIN << 1) | 0);
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
||||
}
|
||||
|
||||
test();
|
||||
|
@ -1,34 +0,0 @@
|
||||
// |reftest| skip-if(!this.hasOwnProperty("SIMD"))
|
||||
var BUGNUMBER = 996076;
|
||||
var float32x4 = SIMD.float32x4;
|
||||
var int32x4 = SIMD.int32x4;
|
||||
|
||||
var summary = 'int32x4 rsh';
|
||||
|
||||
function test() {
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
for (var bits = 0; bits < 32; bits++) {
|
||||
var a = int32x4(-1, 2, -3, 4);
|
||||
var c = SIMD.int32x4.shiftRightArithmeticByScalar(a, bits);
|
||||
assertEq(c.x, -1 >> bits);
|
||||
assertEq(c.y, 2 >> bits);
|
||||
assertEq(c.z, -3 >> bits);
|
||||
assertEq(c.w, 4 >> bits);
|
||||
}
|
||||
|
||||
var INT32_MAX = Math.pow(2, 31) - 1;
|
||||
var INT32_MIN = -Math.pow(2, 31);
|
||||
var d = int32x4(INT32_MAX, INT32_MIN, INT32_MAX, INT32_MIN);
|
||||
var f = SIMD.int32x4.shiftRightArithmeticByScalar(d, 1);
|
||||
assertEq(f.x, INT32_MAX >> 1);
|
||||
assertEq(f.y, INT32_MIN >> 1);
|
||||
assertEq(f.z, INT32_MAX >> 1);
|
||||
assertEq(f.w, INT32_MIN >> 1);
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
||||
}
|
||||
|
||||
test();
|
||||
|
@ -1,35 +0,0 @@
|
||||
// |reftest| skip-if(!this.hasOwnProperty("SIMD"))
|
||||
var BUGNUMBER = 996076;
|
||||
var float32x4 = SIMD.float32x4;
|
||||
var int32x4 = SIMD.int32x4;
|
||||
|
||||
var summary = 'int32x4 ursh';
|
||||
|
||||
function test() {
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
for (var bits = 0; bits < 32; bits++) {
|
||||
var a = int32x4(-1, 2, -3, 4);
|
||||
var c = SIMD.int32x4.shiftRightLogicalByScalar(a, bits);
|
||||
assertEq(c.x >>> 0, -1 >>> bits);
|
||||
assertEq(c.y >>> 0, 2 >>> bits);
|
||||
assertEq(c.z >>> 0, -3 >>> bits);
|
||||
assertEq(c.w >>> 0, 4 >>> bits);
|
||||
}
|
||||
|
||||
var INT32_MAX = Math.pow(2, 31) - 1;
|
||||
var INT32_MIN = -Math.pow(2, 31);
|
||||
|
||||
var d = int32x4(INT32_MAX, INT32_MIN, INT32_MAX, INT32_MIN);
|
||||
var f = SIMD.int32x4.shiftRightLogicalByScalar(d, 0);
|
||||
assertEq(f.x, (INT32_MAX >>> 0) | 0);
|
||||
assertEq(f.y, (INT32_MIN >>> 0) | 0);
|
||||
assertEq(f.z, (INT32_MAX >>> 0) | 0);
|
||||
assertEq(f.w, (INT32_MIN >>> 0) | 0);
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
||||
}
|
||||
|
||||
test();
|
||||
|
@ -28,3 +28,13 @@ function testBinaryFunc(v, w, simdFunc, func) {
|
||||
for (var i = 0; i < observed.length; i++)
|
||||
assertEq(observed[i], expected[i]);
|
||||
}
|
||||
|
||||
function testBinaryScalarFunc(v, scalar, simdFunc, func) {
|
||||
var varr = simdToArray(v);
|
||||
|
||||
var observed = simdToArray(simdFunc(v, scalar));
|
||||
var expected = varr.map(function(v, i) { return func(varr[i], scalar); });
|
||||
|
||||
for (var i = 0; i < observed.length; i++)
|
||||
assertEq(observed[i], expected[i]);
|
||||
}
|
||||
|
37
js/src/tests/ecma_7/SIMD/shifts.js
Normal file
37
js/src/tests/ecma_7/SIMD/shifts.js
Normal file
@ -0,0 +1,37 @@
|
||||
// |reftest| skip-if(!this.hasOwnProperty("SIMD"))
|
||||
|
||||
/*
|
||||
* Any copyright is dedicated to the Public Domain.
|
||||
* https://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
var int32x4 = SIMD.int32x4;
|
||||
|
||||
function lsh(a, b) {
|
||||
return (a << b) | 0;
|
||||
}
|
||||
function rsh(a, b) {
|
||||
return (a >> b) | 0;
|
||||
}
|
||||
function ursh(a, b) {
|
||||
return (a >>> b) | 0;
|
||||
}
|
||||
|
||||
function test() {
|
||||
for (var v of [
|
||||
int32x4(-1, 2, -3, 4),
|
||||
int32x4(INT32_MAX, INT32_MIN, INT32_MAX - 1, INT32_MIN + 1)
|
||||
])
|
||||
{
|
||||
for (var bits = 0; bits < 32; bits++) {
|
||||
testBinaryScalarFunc(v, bits, int32x4.shiftLeftByScalar, lsh);
|
||||
testBinaryScalarFunc(v, bits, int32x4.shiftRightArithmeticByScalar, rsh);
|
||||
testBinaryScalarFunc(v, bits, int32x4.shiftRightLogicalByScalar, ursh);
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
||||
}
|
||||
|
||||
test();
|
Loading…
Reference in New Issue
Block a user