mirror of https://github.com/tc39/test262.git
31 lines
945 B
JavaScript
31 lines
945 B
JavaScript
// Copyright (C) 2016 ecmascript_simd authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: simd-select
|
|
description: Tests SIMD Select.
|
|
includes: [simdUtilities.js]
|
|
---*/
|
|
|
|
function testSelect(type) {
|
|
assert.sameValue('function', typeof type.fn.select);
|
|
// set a and b to values that are different for all numerical types.
|
|
var av = 1;
|
|
var bv = 2;
|
|
var a = type.fn.splat(av);
|
|
var b = type.fn.splat(bv);
|
|
// test all selectors with a single 'true' lane.
|
|
for (var i = 0; i < type.lanes; i++) {
|
|
var selector = type.boolType.fn();
|
|
selector = type.boolType.fn.replaceLane(selector, i, true);
|
|
var result = type.fn.select(selector, a, b);
|
|
checkValue(type, result, function(index) { return index == i ? av : bv; });
|
|
}
|
|
}
|
|
|
|
simdTypes.filter(isNumerical).forEach(function(type) {
|
|
testSimdFunction(type.name + ' select', function() {
|
|
testSelect(type);
|
|
});
|
|
});
|