SIMD.equal
SIMD.equal
SIMD.js已经从TC39中取消了积极的开发,并从第三阶段中删除了。它不再被网页浏览器所追求。暴露在 web 上的SIMD 操作在 WebAssembly 中正处于积极的发展之中, 其操作基于 SIMD. js 操作。
静态SIMD.%type%.equal()
方法返回一个选择掩码,其值取决于a === b
每个通道中严格的相等比较()。
语法
SIMD.Float32x4.equal(a, b)
SIMD.Float64x2.equal(a, b)
SIMD.Int8x16.equal(a, b)
SIMD.Int16x8.equal(a, b)
SIMD.Int32x4.equal(a, b)
SIMD.Uint8x16.equal(a, b)
SIMD.Uint16x8.equal(a, b)
SIMD.Uint32x4.equal(a, b)
参数
a
SIMD类型的实例。b
SIMD类型的另一个实例。
返回值
(类型的选择掩码Bool64x2
,Bool32x4
,Bool16x8
或Bool8x16
根据大小)。掩码的通道值是true
或者false
取决于的结果a === b
。
规范
该SIMD.%type%.equal
方法是SIMD比较操作之一,不会直接返回两个实例相等比较的值。而是返回具有布尔值的选择掩码。
例子
从两个向量中选择相等的通道
在这个例子中,比较两个SIMD Float32x4
数据类型和相应的通道值,并根据结果创建一个选择掩码。然后使用此选择掩码将相等的值选择为新的Float32x4
。在矢量a
和不b
具有相等值的车道位置处,结果矢量使用zero
矢量并填充车道0
。
var a = SIMD.Float32x4(1, 2, 3, 9
var b = SIMD.Float32x4(1, 4, 7, 9
var mask = SIMD.Float32x4.equal(a,b
// Bool32x4[true, false, false, true]
var zero = SIMD.Float32x4(0, 0, 0, 0
var result = SIMD.Float32x4.select(mask, a, zero
// Float32x4[1, 0, 0, 9]
规范
Specification | Status | Comment |
---|---|---|
SIMDThe definition of 'SIMDConstructor.equal' in that specification. | Draft | Initial definition. |
浏览器兼容性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | No support | Nightly build | No support | No support | No support |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | No support | Nightly build | No support | No support | No support |