zena:simd
import {…} from 'zena:simd';
Classes
I8x16
final extension class I8x16
16 lanes of i8 over one v128.
Lanes are read with i8x16ExtractLaneS and the other
instruction-level functions: at 16 lanes there is no set of
names that beats an index, and an index has to be a literal.
new(value: i32)
Every lane set to value.
static splat(value: i32): I8x16
Every lane set to value.
static load(ptr: i32): I8x16
The 16 bytes at ptr in linear memory.
store(ptr: i32): void
Writes all 16 bytes to ptr in linear memory.
neg(): I8x16
Elementwise negation. A method rather than -v: Zena dispatches
only binary operators to operator methods.
abs(): I8x16
Elementwise absolute value.
min(other: I8x16): I8x16
Elementwise minimum.
max(other: I8x16): I8x16
Elementwise maximum.
I16x8
final extension class I16x8
8 lanes of i16 over one v128.
Lanes are read with i16x8ExtractLaneS and the other
instruction-level functions: at 8 lanes there is no set of
names that beats an index, and an index has to be a literal.
new(value: i32)
Every lane set to value.
static splat(value: i32): I16x8
Every lane set to value.
static load(ptr: i32): I16x8
The 16 bytes at ptr in linear memory.
store(ptr: i32): void
Writes all 16 bytes to ptr in linear memory.
neg(): I16x8
Elementwise negation. A method rather than -v: Zena dispatches
only binary operators to operator methods.
abs(): I16x8
Elementwise absolute value.
min(other: I16x8): I16x8
Elementwise minimum.
max(other: I16x8): I16x8
Elementwise maximum.
I32x4
final extension class I32x4
4 lanes of i32 over one v128.
new(value: i32)
Every lane set to value.
static splat(value: i32): I32x4
Every lane set to value.
static load(ptr: i32): I32x4
The 16 bytes at ptr in linear memory.
store(ptr: i32): void
Writes all 16 bytes to ptr in linear memory.
withX(value: i32): I32x4
A copy with lane 0 set to value.
withY(value: i32): I32x4
A copy with lane 1 set to value.
withZ(value: i32): I32x4
A copy with lane 2 set to value.
withW(value: i32): I32x4
A copy with lane 3 set to value.
neg(): I32x4
Elementwise negation. A method rather than -v: Zena dispatches
only binary operators to operator methods.
abs(): I32x4
Elementwise absolute value.
min(other: I32x4): I32x4
Elementwise minimum.
max(other: I32x4): I32x4
Elementwise maximum.
I64x2
final extension class I64x2
2 lanes of i64 over one v128.
new(value: i64)
Every lane set to value.
static splat(value: i64): I64x2
Every lane set to value.
static load(ptr: i32): I64x2
The 16 bytes at ptr in linear memory.
store(ptr: i32): void
Writes all 16 bytes to ptr in linear memory.
withX(value: i64): I64x2
A copy with lane 0 set to value.
withY(value: i64): I64x2
A copy with lane 1 set to value.
neg(): I64x2
Elementwise negation. A method rather than -v: Zena dispatches
only binary operators to operator methods.
abs(): I64x2
Elementwise absolute value.
F32x4
final extension class F32x4
4 lanes of f32 over one v128.
new(value: f32)
Every lane set to value.
static splat(value: f32): F32x4
Every lane set to value.
static load(ptr: i32): F32x4
The 16 bytes at ptr in linear memory.
store(ptr: i32): void
Writes all 16 bytes to ptr in linear memory.
withX(value: f32): F32x4
A copy with lane 0 set to value.
withY(value: f32): F32x4
A copy with lane 1 set to value.
withZ(value: f32): F32x4
A copy with lane 2 set to value.
withW(value: f32): F32x4
A copy with lane 3 set to value.
neg(): F32x4
Elementwise negation. A method rather than -v: Zena dispatches
only binary operators to operator methods.
abs(): F32x4
Elementwise absolute value.
sqrt(): F32x4
Elementwise square root.
min(other: F32x4): F32x4
Elementwise minimum.
max(other: F32x4): F32x4
Elementwise maximum.
F64x2
final extension class F64x2
2 lanes of f64 over one v128.
new(value: f64)
Every lane set to value.
static splat(value: f64): F64x2
Every lane set to value.
static load(ptr: i32): F64x2
The 16 bytes at ptr in linear memory.
store(ptr: i32): void
Writes all 16 bytes to ptr in linear memory.
withX(value: f64): F64x2
A copy with lane 0 set to value.
withY(value: f64): F64x2
A copy with lane 1 set to value.
neg(): F64x2
Elementwise negation. A method rather than -v: Zena dispatches
only binary operators to operator methods.
abs(): F64x2
Elementwise absolute value.
sqrt(): F64x2
Elementwise square root.
min(other: F64x2): F64x2
Elementwise minimum.
max(other: F64x2): F64x2
Elementwise maximum.
Functions
v128Load
declare function v128Load(ptr: i32): v128
v128Load8x8S
declare function v128Load8x8S(ptr: i32): v128
v128Load8x8U
declare function v128Load8x8U(ptr: i32): v128
v128Load16x4S
declare function v128Load16x4S(ptr: i32): v128
v128Load16x4U
declare function v128Load16x4U(ptr: i32): v128
v128Load32x2S
declare function v128Load32x2S(ptr: i32): v128
v128Load32x2U
declare function v128Load32x2U(ptr: i32): v128
v128Load8Splat
declare function v128Load8Splat(ptr: i32): v128
v128Load16Splat
declare function v128Load16Splat(ptr: i32): v128
v128Load32Splat
declare function v128Load32Splat(ptr: i32): v128
v128Load64Splat
declare function v128Load64Splat(ptr: i32): v128
v128Load32Zero
declare function v128Load32Zero(ptr: i32): v128
v128Load64Zero
declare function v128Load64Zero(ptr: i32): v128
v128Store
declare function v128Store(ptr: i32, value: v128): void
v128Load8Lane
declare function v128Load8Lane(ptr: i32, vec: v128, lane: i32): v128
v128Load16Lane
declare function v128Load16Lane(ptr: i32, vec: v128, lane: i32): v128
v128Load32Lane
declare function v128Load32Lane(ptr: i32, vec: v128, lane: i32): v128
v128Load64Lane
declare function v128Load64Lane(ptr: i32, vec: v128, lane: i32): v128
v128Store8Lane
declare function v128Store8Lane(ptr: i32, vec: v128, lane: i32): void
v128Store16Lane
declare function v128Store16Lane(ptr: i32, vec: v128, lane: i32): void
v128Store32Lane
declare function v128Store32Lane(ptr: i32, vec: v128, lane: i32): void
v128Store64Lane
declare function v128Store64Lane(ptr: i32, vec: v128, lane: i32): void
v128Const
declare function v128Const(lane0: i32, lane1: i32, lane2: i32, lane3: i32): v128
i8x16Shuffle
declare function i8x16Shuffle(a: v128, b: v128, l0: i32, l1: i32, l2: i32, l3: i32, l4: i32, l5: i32, l6: i32, l7: i32, l8: i32, l9: i32, l10: i32, l11: i32, l12: i32, l13: i32, l14: i32, l15: i32): v128
i8x16Swizzle
declare function i8x16Swizzle(a: v128, b: v128): v128
i8x16Splat
declare function i8x16Splat(x: i32): v128
i16x8Splat
declare function i16x8Splat(x: i32): v128
i32x4Splat
declare function i32x4Splat(x: i32): v128
i64x2Splat
declare function i64x2Splat(x: i64): v128
f32x4Splat
declare function f32x4Splat(x: f32): v128
f64x2Splat
declare function f64x2Splat(x: f64): v128
i8x16ExtractLaneS
declare function i8x16ExtractLaneS(a: v128, lane: i32): i32
i8x16ExtractLaneU
declare function i8x16ExtractLaneU(a: v128, lane: i32): i32
i8x16ReplaceLane
declare function i8x16ReplaceLane(a: v128, lane: i32, value: i32): v128
i16x8ExtractLaneS
declare function i16x8ExtractLaneS(a: v128, lane: i32): i32
i16x8ExtractLaneU
declare function i16x8ExtractLaneU(a: v128, lane: i32): i32
i16x8ReplaceLane
declare function i16x8ReplaceLane(a: v128, lane: i32, value: i32): v128
i32x4ExtractLane
declare function i32x4ExtractLane(a: v128, lane: i32): i32
i32x4ReplaceLane
declare function i32x4ReplaceLane(a: v128, lane: i32, value: i32): v128
i64x2ExtractLane
declare function i64x2ExtractLane(a: v128, lane: i32): i64
i64x2ReplaceLane
declare function i64x2ReplaceLane(a: v128, lane: i32, value: i64): v128
f32x4ExtractLane
declare function f32x4ExtractLane(a: v128, lane: i32): f32
f32x4ReplaceLane
declare function f32x4ReplaceLane(a: v128, lane: i32, value: f32): v128
f64x2ExtractLane
declare function f64x2ExtractLane(a: v128, lane: i32): f64
f64x2ReplaceLane
declare function f64x2ReplaceLane(a: v128, lane: i32, value: f64): v128
v128Not
declare function v128Not(a: v128): v128
v128And
declare function v128And(a: v128, b: v128): v128
v128Andnot
declare function v128Andnot(a: v128, b: v128): v128
v128Or
declare function v128Or(a: v128, b: v128): v128
v128Xor
declare function v128Xor(a: v128, b: v128): v128
v128Bitselect
declare function v128Bitselect(a: v128, b: v128, c: v128): v128
v128AnyTrue
declare function v128AnyTrue(a: v128): i32
i8x16Eq
declare function i8x16Eq(a: v128, b: v128): v128
i8x16Ne
declare function i8x16Ne(a: v128, b: v128): v128
i8x16LtS
declare function i8x16LtS(a: v128, b: v128): v128
i8x16LtU
declare function i8x16LtU(a: v128, b: v128): v128
i8x16GtS
declare function i8x16GtS(a: v128, b: v128): v128
i8x16GtU
declare function i8x16GtU(a: v128, b: v128): v128
i8x16LeS
declare function i8x16LeS(a: v128, b: v128): v128
i8x16LeU
declare function i8x16LeU(a: v128, b: v128): v128
i8x16GeS
declare function i8x16GeS(a: v128, b: v128): v128
i8x16GeU
declare function i8x16GeU(a: v128, b: v128): v128
i8x16Abs
declare function i8x16Abs(a: v128): v128
i8x16Neg
declare function i8x16Neg(a: v128): v128
i8x16Popcnt
declare function i8x16Popcnt(a: v128): v128
i8x16AllTrue
declare function i8x16AllTrue(a: v128): i32
i8x16Bitmask
declare function i8x16Bitmask(a: v128): i32
i8x16NarrowI16x8S
declare function i8x16NarrowI16x8S(a: v128, b: v128): v128
i8x16NarrowI16x8U
declare function i8x16NarrowI16x8U(a: v128, b: v128): v128
i8x16Shl
declare function i8x16Shl(a: v128, count: i32): v128
i8x16ShrS
declare function i8x16ShrS(a: v128, count: i32): v128
i8x16ShrU
declare function i8x16ShrU(a: v128, count: i32): v128
i8x16Add
declare function i8x16Add(a: v128, b: v128): v128
i8x16AddSatS
declare function i8x16AddSatS(a: v128, b: v128): v128
i8x16AddSatU
declare function i8x16AddSatU(a: v128, b: v128): v128
i8x16Sub
declare function i8x16Sub(a: v128, b: v128): v128
i8x16SubSatS
declare function i8x16SubSatS(a: v128, b: v128): v128
i8x16SubSatU
declare function i8x16SubSatU(a: v128, b: v128): v128
i8x16MinS
declare function i8x16MinS(a: v128, b: v128): v128
i8x16MinU
declare function i8x16MinU(a: v128, b: v128): v128
i8x16MaxS
declare function i8x16MaxS(a: v128, b: v128): v128
i8x16MaxU
declare function i8x16MaxU(a: v128, b: v128): v128
i8x16AvgrU
declare function i8x16AvgrU(a: v128, b: v128): v128
i16x8Eq
declare function i16x8Eq(a: v128, b: v128): v128
i16x8Ne
declare function i16x8Ne(a: v128, b: v128): v128
i16x8LtS
declare function i16x8LtS(a: v128, b: v128): v128
i16x8LtU
declare function i16x8LtU(a: v128, b: v128): v128
i16x8GtS
declare function i16x8GtS(a: v128, b: v128): v128
i16x8GtU
declare function i16x8GtU(a: v128, b: v128): v128
i16x8LeS
declare function i16x8LeS(a: v128, b: v128): v128
i16x8LeU
declare function i16x8LeU(a: v128, b: v128): v128
i16x8GeS
declare function i16x8GeS(a: v128, b: v128): v128
i16x8GeU
declare function i16x8GeU(a: v128, b: v128): v128
i16x8ExtaddPairwiseI8x16S
declare function i16x8ExtaddPairwiseI8x16S(a: v128): v128
i16x8ExtaddPairwiseI8x16U
declare function i16x8ExtaddPairwiseI8x16U(a: v128): v128
i16x8Abs
declare function i16x8Abs(a: v128): v128
i16x8Neg
declare function i16x8Neg(a: v128): v128
i16x8Q15mulrSatS
declare function i16x8Q15mulrSatS(a: v128, b: v128): v128
i16x8AllTrue
declare function i16x8AllTrue(a: v128): i32
i16x8Bitmask
declare function i16x8Bitmask(a: v128): i32
i16x8NarrowI32x4S
declare function i16x8NarrowI32x4S(a: v128, b: v128): v128
i16x8NarrowI32x4U
declare function i16x8NarrowI32x4U(a: v128, b: v128): v128
i16x8ExtendLowI8x16S
declare function i16x8ExtendLowI8x16S(a: v128): v128
i16x8ExtendHighI8x16S
declare function i16x8ExtendHighI8x16S(a: v128): v128
i16x8ExtendLowI8x16U
declare function i16x8ExtendLowI8x16U(a: v128): v128
i16x8ExtendHighI8x16U
declare function i16x8ExtendHighI8x16U(a: v128): v128
i16x8Shl
declare function i16x8Shl(a: v128, count: i32): v128
i16x8ShrS
declare function i16x8ShrS(a: v128, count: i32): v128
i16x8ShrU
declare function i16x8ShrU(a: v128, count: i32): v128
i16x8Add
declare function i16x8Add(a: v128, b: v128): v128
i16x8AddSatS
declare function i16x8AddSatS(a: v128, b: v128): v128
i16x8AddSatU
declare function i16x8AddSatU(a: v128, b: v128): v128
i16x8Sub
declare function i16x8Sub(a: v128, b: v128): v128
i16x8SubSatS
declare function i16x8SubSatS(a: v128, b: v128): v128
i16x8SubSatU
declare function i16x8SubSatU(a: v128, b: v128): v128
i16x8Mul
declare function i16x8Mul(a: v128, b: v128): v128
i16x8MinS
declare function i16x8MinS(a: v128, b: v128): v128
i16x8MinU
declare function i16x8MinU(a: v128, b: v128): v128
i16x8MaxS
declare function i16x8MaxS(a: v128, b: v128): v128
i16x8MaxU
declare function i16x8MaxU(a: v128, b: v128): v128
i16x8AvgrU
declare function i16x8AvgrU(a: v128, b: v128): v128
i16x8ExtmulLowI8x16S
declare function i16x8ExtmulLowI8x16S(a: v128, b: v128): v128
i16x8ExtmulHighI8x16S
declare function i16x8ExtmulHighI8x16S(a: v128, b: v128): v128
i16x8ExtmulLowI8x16U
declare function i16x8ExtmulLowI8x16U(a: v128, b: v128): v128
i16x8ExtmulHighI8x16U
declare function i16x8ExtmulHighI8x16U(a: v128, b: v128): v128
i32x4Eq
declare function i32x4Eq(a: v128, b: v128): v128
i32x4Ne
declare function i32x4Ne(a: v128, b: v128): v128
i32x4LtS
declare function i32x4LtS(a: v128, b: v128): v128
i32x4LtU
declare function i32x4LtU(a: v128, b: v128): v128
i32x4GtS
declare function i32x4GtS(a: v128, b: v128): v128
i32x4GtU
declare function i32x4GtU(a: v128, b: v128): v128
i32x4LeS
declare function i32x4LeS(a: v128, b: v128): v128
i32x4LeU
declare function i32x4LeU(a: v128, b: v128): v128
i32x4GeS
declare function i32x4GeS(a: v128, b: v128): v128
i32x4GeU
declare function i32x4GeU(a: v128, b: v128): v128
i32x4ExtaddPairwiseI16x8S
declare function i32x4ExtaddPairwiseI16x8S(a: v128): v128
i32x4ExtaddPairwiseI16x8U
declare function i32x4ExtaddPairwiseI16x8U(a: v128): v128
i32x4Abs
declare function i32x4Abs(a: v128): v128
i32x4Neg
declare function i32x4Neg(a: v128): v128
i32x4AllTrue
declare function i32x4AllTrue(a: v128): i32
i32x4Bitmask
declare function i32x4Bitmask(a: v128): i32
i32x4ExtendLowI16x8S
declare function i32x4ExtendLowI16x8S(a: v128): v128
i32x4ExtendHighI16x8S
declare function i32x4ExtendHighI16x8S(a: v128): v128
i32x4ExtendLowI16x8U
declare function i32x4ExtendLowI16x8U(a: v128): v128
i32x4ExtendHighI16x8U
declare function i32x4ExtendHighI16x8U(a: v128): v128
i32x4Shl
declare function i32x4Shl(a: v128, count: i32): v128
i32x4ShrS
declare function i32x4ShrS(a: v128, count: i32): v128
i32x4ShrU
declare function i32x4ShrU(a: v128, count: i32): v128
i32x4Add
declare function i32x4Add(a: v128, b: v128): v128
i32x4Sub
declare function i32x4Sub(a: v128, b: v128): v128
i32x4Mul
declare function i32x4Mul(a: v128, b: v128): v128
i32x4MinS
declare function i32x4MinS(a: v128, b: v128): v128
i32x4MinU
declare function i32x4MinU(a: v128, b: v128): v128
i32x4MaxS
declare function i32x4MaxS(a: v128, b: v128): v128
i32x4MaxU
declare function i32x4MaxU(a: v128, b: v128): v128
i32x4DotI16x8S
declare function i32x4DotI16x8S(a: v128, b: v128): v128
i32x4ExtmulLowI16x8S
declare function i32x4ExtmulLowI16x8S(a: v128, b: v128): v128
i32x4ExtmulHighI16x8S
declare function i32x4ExtmulHighI16x8S(a: v128, b: v128): v128
i32x4ExtmulLowI16x8U
declare function i32x4ExtmulLowI16x8U(a: v128, b: v128): v128
i32x4ExtmulHighI16x8U
declare function i32x4ExtmulHighI16x8U(a: v128, b: v128): v128
i32x4TruncSatF32x4S
declare function i32x4TruncSatF32x4S(a: v128): v128
i32x4TruncSatF32x4U
declare function i32x4TruncSatF32x4U(a: v128): v128
i32x4TruncSatF64x2SZero
declare function i32x4TruncSatF64x2SZero(a: v128): v128
i32x4TruncSatF64x2UZero
declare function i32x4TruncSatF64x2UZero(a: v128): v128
i64x2Eq
declare function i64x2Eq(a: v128, b: v128): v128
i64x2Ne
declare function i64x2Ne(a: v128, b: v128): v128
i64x2LtS
declare function i64x2LtS(a: v128, b: v128): v128
i64x2GtS
declare function i64x2GtS(a: v128, b: v128): v128
i64x2LeS
declare function i64x2LeS(a: v128, b: v128): v128
i64x2GeS
declare function i64x2GeS(a: v128, b: v128): v128
i64x2Abs
declare function i64x2Abs(a: v128): v128
i64x2Neg
declare function i64x2Neg(a: v128): v128
i64x2AllTrue
declare function i64x2AllTrue(a: v128): i32
i64x2Bitmask
declare function i64x2Bitmask(a: v128): i32
i64x2ExtendLowI32x4S
declare function i64x2ExtendLowI32x4S(a: v128): v128
i64x2ExtendHighI32x4S
declare function i64x2ExtendHighI32x4S(a: v128): v128
i64x2ExtendLowI32x4U
declare function i64x2ExtendLowI32x4U(a: v128): v128
i64x2ExtendHighI32x4U
declare function i64x2ExtendHighI32x4U(a: v128): v128
i64x2Shl
declare function i64x2Shl(a: v128, count: i32): v128
i64x2ShrS
declare function i64x2ShrS(a: v128, count: i32): v128
i64x2ShrU
declare function i64x2ShrU(a: v128, count: i32): v128
i64x2Add
declare function i64x2Add(a: v128, b: v128): v128
i64x2Sub
declare function i64x2Sub(a: v128, b: v128): v128
i64x2Mul
declare function i64x2Mul(a: v128, b: v128): v128
i64x2ExtmulLowI32x4S
declare function i64x2ExtmulLowI32x4S(a: v128, b: v128): v128
i64x2ExtmulHighI32x4S
declare function i64x2ExtmulHighI32x4S(a: v128, b: v128): v128
i64x2ExtmulLowI32x4U
declare function i64x2ExtmulLowI32x4U(a: v128, b: v128): v128
i64x2ExtmulHighI32x4U
declare function i64x2ExtmulHighI32x4U(a: v128, b: v128): v128
f32x4Eq
declare function f32x4Eq(a: v128, b: v128): v128
f32x4Ne
declare function f32x4Ne(a: v128, b: v128): v128
f32x4Lt
declare function f32x4Lt(a: v128, b: v128): v128
f32x4Gt
declare function f32x4Gt(a: v128, b: v128): v128
f32x4Le
declare function f32x4Le(a: v128, b: v128): v128
f32x4Ge
declare function f32x4Ge(a: v128, b: v128): v128
f32x4Ceil
declare function f32x4Ceil(a: v128): v128
f32x4Floor
declare function f32x4Floor(a: v128): v128
f32x4Trunc
declare function f32x4Trunc(a: v128): v128
f32x4Nearest
declare function f32x4Nearest(a: v128): v128
f32x4Abs
declare function f32x4Abs(a: v128): v128
f32x4Neg
declare function f32x4Neg(a: v128): v128
f32x4Sqrt
declare function f32x4Sqrt(a: v128): v128
f32x4Add
declare function f32x4Add(a: v128, b: v128): v128
f32x4Sub
declare function f32x4Sub(a: v128, b: v128): v128
f32x4Mul
declare function f32x4Mul(a: v128, b: v128): v128
f32x4Div
declare function f32x4Div(a: v128, b: v128): v128
f32x4Min
declare function f32x4Min(a: v128, b: v128): v128
f32x4Max
declare function f32x4Max(a: v128, b: v128): v128
f32x4Pmin
declare function f32x4Pmin(a: v128, b: v128): v128
f32x4Pmax
declare function f32x4Pmax(a: v128, b: v128): v128
f32x4ConvertI32x4S
declare function f32x4ConvertI32x4S(a: v128): v128
f32x4ConvertI32x4U
declare function f32x4ConvertI32x4U(a: v128): v128
f32x4DemoteF64x2Zero
declare function f32x4DemoteF64x2Zero(a: v128): v128
f64x2Eq
declare function f64x2Eq(a: v128, b: v128): v128
f64x2Ne
declare function f64x2Ne(a: v128, b: v128): v128
f64x2Lt
declare function f64x2Lt(a: v128, b: v128): v128
f64x2Gt
declare function f64x2Gt(a: v128, b: v128): v128
f64x2Le
declare function f64x2Le(a: v128, b: v128): v128
f64x2Ge
declare function f64x2Ge(a: v128, b: v128): v128
f64x2Ceil
declare function f64x2Ceil(a: v128): v128
f64x2Floor
declare function f64x2Floor(a: v128): v128
f64x2Trunc
declare function f64x2Trunc(a: v128): v128
f64x2Nearest
declare function f64x2Nearest(a: v128): v128
f64x2Abs
declare function f64x2Abs(a: v128): v128
f64x2Neg
declare function f64x2Neg(a: v128): v128
f64x2Sqrt
declare function f64x2Sqrt(a: v128): v128
f64x2Add
declare function f64x2Add(a: v128, b: v128): v128
f64x2Sub
declare function f64x2Sub(a: v128, b: v128): v128
f64x2Mul
declare function f64x2Mul(a: v128, b: v128): v128
f64x2Div
declare function f64x2Div(a: v128, b: v128): v128
f64x2Min
declare function f64x2Min(a: v128, b: v128): v128
f64x2Max
declare function f64x2Max(a: v128, b: v128): v128
f64x2Pmin
declare function f64x2Pmin(a: v128, b: v128): v128
f64x2Pmax
declare function f64x2Pmax(a: v128, b: v128): v128
f64x2ConvertLowI32x4S
declare function f64x2ConvertLowI32x4S(a: v128): v128
f64x2ConvertLowI32x4U
declare function f64x2ConvertLowI32x4U(a: v128): v128
f64x2PromoteLowF32x4
declare function f64x2PromoteLowF32x4(a: v128): v128