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]

规范

SpecificationStatusComment
SIMDThe definition of 'Uint32x4' in that specification.DraftInitial definition.

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic supportNo supportNightly buildNightly buildNo supportNo supportNo support

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo supportNo supportNightly buildNightly buildNo supportNo supportNo support