SIMD.Uint32x4
SIMD.Uint32x4
SIMD.js已经从TC39中取消了积极的开发,并从第三阶段中删除了。它不再被网页浏览器所追求。暴露在 web 上的SIMD 操作在 WebAssembly 中正处于积极的发展之中, 其操作基于 SIMD. js 操作。
的SIMD.Uint32x4
数据类型是一个128位的向量分成4个通道存储32位无符号整数值。
语法
SIMD.Uint32x4(x, y, z, w
参数
x
可选 一个指定第一个车道值的整数。默认为0.
构造函数
除了简单的构造函数外,SIMD API还提供以下构造函数。
SIMD.Uint32x4.splat()
创建一个Uint32x4,将所有通道设置为给定值。
您也可以将另一个SIMD数据类型转换为Uint32x4。
注意:
SIMD类型不起作用new
,因为SIMD值不是“盒装”对象(可String(s)
与new String(s)
创建String对象的vs 比较)。
var v = new SIMD.Uint32x4(1, 2, 3, 4
// TypeError: SIMD.Uint32x4 is not a constructor
var w = new SIMD.Uint32x4.splat(3
// TypeError: SIMD.Uint32x4.splat is not a constructor
与之替代的是:
var v = SIMD.Uint32x4(1, 2, 3, 4
var w = SIMD.Uint32x4.splat(3
运算
要在 SIMD 类型中实际执行某些操作, 需要使用SIMD数据类型。
检查SIMD类型
SIMD.Uint32x4.check()
如果参数是有效的Uint32x4数据类型,则返回新的Uint32x4。TypeError
否则抛出。
访问和变换通道
SIMD.Uint32x4.extractLane()
返回给定通道的值。SIMD.Uint32x4.replaceLane()
返回已替换给定通道值的新Uint32x4。
从类型数组中加载和存储
SIMD.Uint32x4.load()SIMD.Uint32x4.load1()SIMD.Uint32x4.load2()SIMD.Uint32x4.load3()
返回一个新的Uint32x4,其中从一个类型数组中加载通道值。SIMD.Uint32x4.store()
SIMD.Uint32x4.store1()
SIMD.Uint32x4.store2()
SIMD.Uint32x4.store3()
算术运算
SIMD.Uint32x4.add()
返回一个添加了通道值的新Uint32x4(a + b
)。
混合和调整
SIMD.Uint32x4.shuffle()
返回一个具有混合通道值的新Uint32x4。
选项
SIMD.Uint32x4.select()
返回一个新的Uint32x4,其中通道值是通道的混合,取决于选择器掩码。
比较
SIMD.Uint32x4.equal()
返回取决于的选择掩码a == b
。
按位逻辑操作
SIMD.Uint32x4.and()
返回一个新的Uint32x4,带有通道值(a & b
)的逻辑与。
按位移动操作
SIMD.Uint32x4.shiftLeftByScalar()返回一个新的Uint32x4,通道值向左移动一个给定的位数(a << bits)。
数值转化
SIMD.Uint32x4.fromFloat32x4()
使用Float32x4的浮点数转换创建一个新的Uint32x4数据类型。SIMD.Uint32x4.fromFloat32x4Bits()
使用Float32x4的按位副本创建新的Uint32x4数据类型。SIMD.Uint32x4.fromFloat64x2Bits()
使用Float64x2的按位副本创建新的Uint32x4数据类型。SIMD.Uint32x4.fromInt32x4Bits()
使用Int32x4的按位副本创建新的Uint32x4数据类型。SIMD.Uint32x4.fromInt16x8Bits()
使用Int16x8的按位副本创建新的Uint32x4数据类型。SIMD.Uint32x4.fromInt8x16Bits()
使用Int8x16的逐位拷贝创建新的Uint32x4数据类型。SIMD.Uint32x4.fromUint16x8Bits()
使用Uint16x8的按位副本创建新的Uint32x4数据类型。SIMD.Uint32x4.fromUint8x16Bits()
使用Uint8x16的按位副本创建新的Uint32x4数据类型。
SIMD 原型
下面的方法和属性被安装在SIMD.Uint32x4.prototype
。
SIMD.Uint32x4.prototype.constructor
指定创建SIMD对象原型的函数。
例子
构建一个Uint32x4
SIMD.Uint32x4(1, 2, 3, 4 // Uint32x4[1, 2, 3, 4]
SIMD.Uint32x4(1, 2 // Uint32x4[1, 2, 0, 0]
SIMD.Uint32x4( // Uint32x4[0, 0, 0, 0]
规范
Specification | Status | Comment |
---|---|---|
SIMDThe definition of 'Uint32x4' in that specification. | Draft | Initial definition. |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | No support | Nightly build | Nightly build | No support | No support | No support |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | No support | No support | Nightly build | Nightly build | No support | No support | No support |