🔬This is a nightly-only experimental API. (
simd_wasm64
#90599)Available on
target_family="wasm"
only.Expand description
特定于平台的用于 wasm
目标家庭的内部函数。
有关更多详细信息,请参见 模块级文档。
Structs
- 特定于 WASM 的 128 位宽 SIMD vector 类型。
Functions
- 使用一次舍入或两次舍入计算
a * b + c
。 f32x4_max
的宽松版本,即f32x4_max
或f32x4_pmax
。f32x4_min
的宽松版本,即f32x4_min
或f32x4_pmin
。- 使用一次舍入或两次舍入计算
-a * b + c
。 - 使用一次舍入或两次舍入计算
a * b + c
。 f64x2_max
的宽松版本,即f64x2_max
或f64x2_pmax
。f64x2_min
的宽松版本,即f64x2_min
或f64x2_pmin
。- 使用一次舍入或两次舍入计算
-a * b + c
。 v128_bitselect
的宽松版本,其中它的行为与v128_bitselect
相同或检查每个 lanem
的高位,如果该位为 1,则选择a
的相应 lane,如果为零,则选择b
的 lane。i8x16_swizzle(a, s)
的轻松版本,它使用s
中的索引从a
中选择 lanes。- 轻松的点积指令。
v128_bitselect
的宽松版本,其中它的行为与v128_bitselect
相同或检查每个 lanem
的高位,如果该位为 1,则选择a
的相应 lane,如果为零,则选择b
的 lane。i16x8_relaxed_q15mulr
的宽松版本,如果两个 lanes 都是i16::MIN
,则结果是i16::MIN
或i16::MAX
。- 与
i16x8_relaxed_dot_i8x16_i7x16
类似,不同之处在于中间i16x8
结果被馈送到i32x4_extadd_pairwise_i16x8
,然后i32x4_add
将值c
添加到结果中。 v128_bitselect
的宽松版本,其中它的行为与v128_bitselect
相同或检查每个 lanem
的高位,如果该位为 1,则选择a
的相应 lane,如果为零,则选择b
的 lane。i32x4_trunc_sat_f32x4(a)
的宽松版本将a
的f32
lanes 转换为带符号的 32 位整数。i32x4_trunc_sat_f64x2_zero(a)
的宽松版本将a
的f64
lanes 转换为带符号的 32 位整数,并且高两个 lanes 为零。v128_bitselect
的宽松版本,其中它的行为与v128_bitselect
相同或检查每个 lanem
的高位,如果该位为 1,则选择a
的相应 lane,如果为零,则选择b
的 lane。- 对应 wasm 的
memory.atomic.notify
指令 - 对应 wasm 的
memory.atomic.wait32
指令 - 对应 wasm 的
memory.atomic.wait64
指令 u32x4_trunc_sat_f32x4(a)
的宽松版本将a
的f32
lanes 转换为无符号 32 位整数。u32x4_trunc_sat_f64x2_zero(a)
的宽松版本将a
的f64
lanes 转换为无符号 32 位整数,并且高两个 lanes 为零。- f32x4
simd128
从提供的操作数实现 SIMD 值。 - f32x4_abs
simd128
计算一个 128 位 vector 的每个 lane 的绝对值,该绝对值解释为四个 32 位浮点数。 - f32x4_add
simd128
Lane 两个 128 位 vectors 的加法被解释为四个 32 位浮点数。 - f32x4_ceil
simd128
按 lane-wise 舍入到不小于输入的最近整数值。 - f32x4_convert_i32x4
simd128
将解释为四个 32 位有符号整数的 128 位 vector 转换为 四个 32 位浮点数的 128 位 vector。 - f32x4_convert_u32x4
simd128
将解释为四个 32 位无符号整数的 128 位 vector 转换为 四个 32 位浮点数的 128 位 vector。 - f32x4_demote_f64x2_zero
simd128
将结果的两个双精度浮点 lanes 转换为两个较低的单精度 lanes。 结果的两个较高 lane 被初始化为零。 如果转换结果不能表示为单精度浮点数,则将其四舍五入为最接近的偶数可表示数。 - f32x4_div
simd128
两个 128 位 vectors 的 Lane 除法解释为四个 32 位浮点数。 - f32x4_eq
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位浮点数的两个 vectors 一样。 - f32x4_extract_lane
simd128
从解释为 4 个包装的 f32 数字的 128 位 vector 中提取 lane。 - f32x4_floor
simd128
按 lane-wise 舍入到不大于输入的最近整数值。 - f32x4_ge
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位浮点数的两个 vectors 一样。 - f32x4_gt
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位浮点数的两个 vectors 一样。 - f32x4_le
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位浮点数的两个 vectors 一样。 - f32x4_lt
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位浮点数的两个 vectors 一样。 - f32x4_max
simd128
计算两个 128 位 vectors 的 lane 最小值,解释为四个 32 位浮点数。 - f32x4_min
simd128
计算两个 128 位 vectors 的 lane 最小值,解释为四个 32 位浮点数。 - f32x4_mul
simd128
两个 128 位 vectors 的 Lane 乘法被解释为四个 32 位浮点数。 - f32x4_ne
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位浮点数的两个 vectors 一样。 - f32x4_nearest
simd128
按 lane-wise 舍入到最接近的整数值; 如果两个值相等,则舍入到偶数。 - f32x4_neg
simd128
对解释为四个 32 位浮点数的 128 位向量的每个 lane 求反。 - f32x4_pmax
simd128
lane-wise 最大值,定义为a < b ? b : a
- f32x4_pmin
simd128
lane-wise 最小值,定义为b < a ? b : a
- f32x4_replace_lane
simd128
从解释为 4 个包装的 f32 编号的 128 位 vector 替换一个 lane。 - f32x4_splat
simd128
创建具有相同 lanes 的 vector。 - f32x4_sqrt
simd128
计算一个 128 位 vector 的每个 lane 的平方根,该 vector 解释为四个 32 位浮点数。 - f32x4_sub
simd128
两个 128 位 vectors 的 Lane 减法被解释为四个 32 位浮点数。 - f32x4_trunc
simd128
按 lane-wise 舍入到最接近的整数值,幅度不大于输入。 - f64x2
simd128
从提供的操作数实现 SIMD 值。 - f64x2_abs
simd128
计算被解释为两个 64 位浮点数的 128 位 vector 的每个 lane 的绝对值。 - f64x2_add
simd128
两个 128 位 vectors 的 Lane 方式相加被解释为两个 64 位浮点数。 - f64x2_ceil
simd128
按 lane-wise 舍入到不小于输入的最近整数值。 - f64x2_convert_low_i32x4
simd128
从整数到浮点的按 lane-wise 转换。 - f64x2_convert_low_u32x4
simd128
从整数到浮点的按 lane-wise 转换。 - f64x2_div
simd128
两个 128 位 vectors 的 Lane 方式除法被解释为两个 64 位浮点数。 - f64x2_eq
simd128
比较两个 128 位 vectors,就好像它们是 2 个 64 位浮点数的两个 vectors 一样。 - f64x2_extract_lane
simd128
从解释为 2 个包装的 f64 编号的 128 位 vector 中提取 lane。 - f64x2_floor
simd128
按 lane-wise 舍入到不大于输入的最近整数值。 - f64x2_ge
simd128
比较两个 128 位 vectors,就好像它们是 2 个 64 位浮点数的两个 vectors 一样。 - f64x2_gt
simd128
比较两个 128 位 vectors,就好像它们是 2 个 64 位浮点数的两个 vectors 一样。 - f64x2_le
simd128
比较两个 128 位 vectors,就好像它们是 2 个 64 位浮点数的两个 vectors 一样。 - f64x2_lt
simd128
比较两个 128 位 vectors,就好像它们是 2 个 64 位浮点数的两个 vectors 一样。 - f64x2_max
simd128
计算两个 128 位 vectors 的 lane 最大值,解释为两个 64 位浮点数。 - f64x2_min
simd128
计算两个 128 位 vectors 的 lane 最小值,解释为两个 64 位浮点数。 - f64x2_mul
simd128
两个 128 位 vectors 的 Lane 乘法被解释为两个 64 位浮点数。 - f64x2_ne
simd128
比较两个 128 位 vectors,就好像它们是 2 个 64 位浮点数的两个 vectors 一样。 - f64x2_nearest
simd128
按 lane-wise 舍入到最接近的整数值; 如果两个值相等,则舍入到偶数。 - f64x2_neg
simd128
取反解释为两个 64 位浮点数的 128 位 vector 的每个 lane。 - f64x2_pmax
simd128
lane-wise 最大值,定义为a < b ? b : a
- f64x2_pmin
simd128
lane-wise 最小值,定义为b < a ? b : a
- f64x2_promote_low_f32x4
simd128
将两个较低的单精度浮点 lanes 转换为结果的两个双精度 lanes。 - f64x2_replace_lane
simd128
从一个解释为 2 包装的 f64 编号的 128 位 vector 替换一个 lane。 - f64x2_splat
simd128
创建具有相同 lanes 的 vector。 - f64x2_sqrt
simd128
计算一个 128 位 vector 的每个 lane 的平方根,该 vector 解释为两个 64 位浮点数。 - f64x2_sub
simd128
两个 128 位 vectors 的 Lane 减法被解释为两个 64 位浮点数。 - f64x2_trunc
simd128
按 lane-wise 舍入到最接近的整数值,幅度不大于输入。 - i8x16
simd128
从提供的操作数实现 SIMD 值。 - i8x16_abs
simd128
按 lane-wise 包装绝对值。 - i8x16_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的 16 个 8 位整数一样。 - i8x16_add_sat
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的 16 个 8 位有符号整数一样,在溢出到i8::MAX
时会饱和。 - i8x16_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - i8x16_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - i8x16_eq
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位整数的两个 vectors 一样。 - i8x16_extract_lane
simd128
从解释为 16 个包装的 i8 数字的 128 位 vector 中提取 lane。 - i8x16_ge
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位有符号整数的两个 vectors 一样。 - i8x16_gt
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位有符号整数的两个 vectors 一样。 - i8x16_le
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位有符号整数的两个 vectors 一样。 - i8x16_lt
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位有符号整数的两个 vectors 一样。 - i8x16_max
simd128
比较 lane-wise 有符号整数,并返回每对的最大值。 - i8x16_min
simd128
比较 lane-wise 有符号整数,并返回每对中的最小值。 - i8x16_narrow_i16x8
simd128
通过使每个 lane 变窄,将两个输入 vectors 转换为较小的 lane vector。 - i8x16_ne
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位整数的两个 vectors 一样。 - i8x16_neg
simd128
对解释为 16 个 8 位有符号整数的 128 位 vectors 求反 - i8x16_popcnt
simd128
计算每个 lane 内设置为 1 的位数。 - i8x16_replace_lane
simd128
替换 128 位 vector 中的 lane,该 lane 被解释为 16 个包装的 i8 数字。 - i8x16_shl
simd128
将每个 lane 向左移动指定的位数。 - i8x16_shr
simd128
将每个 lane 向右移动指定的位数,并扩展符号。 - i8x16_shuffle
simd128
返回一个新的 vector,其 lanes 从 16 个 immediate 操作数中指定的两个输入 vectors$a
和$b
的 lanes 中选择。 - i8x16_splat
simd128
创建具有相同 lanes 的 vector。 - i8x16_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的 16 个 8 位整数一样。 - i8x16_sub_sat
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的 16 个 8 位有符号整数一样,在溢出到i8::MIN
时会饱和。 - i8x16_swizzle
simd128
返回带有从第二个输入 vectors
中指定的第一个输入 vectora
的 lanes 中选择的 lanes 的新 vector。 - i16x8
simd128
从提供的操作数实现 SIMD 值。 - i16x8_abs
simd128
按 lane-wise 包装绝对值。 - i16x8_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的八个 16 位整数一样。 - i16x8_add_sat
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的八个 16 位有符号整数一样,在溢出到i16::MAX
时会饱和。 - i16x8_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - i16x8_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - i16x8_eq
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位整数的两个 vectors 一样。 - i16x8_extadd_pairwise_i8x16
simd128
整数扩展成对加法产生扩展结果 (比输入宽两倍的结果)。 - i16x8_extadd_pairwise_u8x16
simd128
整数扩展成对加法产生扩展结果 (比输入宽两倍的结果)。 - i16x8_extend_high_i8x16
simd128
将较小 lane vector 的高一半转换为较大 lane vector,并对其进行符号扩展。 - i16x8_extend_high_u8x16
simd128
将较小 lane vector 的高一半转换为较大 lane vector,扩展为零。 - i16x8_extend_low_i8x16
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,并扩展符号。 - i16x8_extend_low_u8x16
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,扩展为零。 - i16x8_extmul_high_i8x16
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i16x8_extmul_high_u8x16
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i16x8_extmul_low_i8x16
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i16x8_extmul_low_u8x16
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i16x8_extract_lane
simd128
从解释为 8 个包装的 i16 数字的 128 位 vector 中提取 lane。 - i16x8_ge
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位带符号整数的两个 vectors 一样。 - i16x8_gt
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位带符号整数的两个 vectors 一样。 - i16x8_le
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位带符号整数的两个 vectors 一样。 - i16x8_load_extend_i8x8⚠
simd128
加载 8 个 8 位整数,并将每个符号扩展到 16 位 lane - i16x8_load_extend_u8x8⚠
simd128
加载 8 个 8 位整数,零加载每个整数至 16 位 lane - i16x8_lt
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位带符号整数的两个 vectors 一样。 - i16x8_max
simd128
比较 lane-wise 有符号整数,并返回每对的最大值。 - i16x8_min
simd128
比较 lane-wise 有符号整数,并返回每对中的最小值。 - i16x8_mul
simd128
将两个 128 位 vectors 相乘,就好像它们是两个包装的八个 16 位有符号整数一样。 - i16x8_narrow_i32x4
simd128
通过使每个 lane 变窄,将两个输入 vectors 转换为较小的 lane vector。 - i16x8_ne
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位整数的两个 vectors 一样。 - i16x8_neg
simd128
对解释为八个 16 位有符号整数的 128 位 vectors 求反 - i16x8_q15mulr_sat
simd128
Q15 格式的 lane-wise 饱和舍入乘法。 - i16x8_replace_lane
simd128
从解释为 8 个包装的 i16 编号的 128 位 vector 替换一个 lane。 - i16x8_shl
simd128
将每个 lane 向左移动指定的位数。 - i16x8_shr
simd128
将每个 lane 向右移动指定的位数,并扩展符号。 - i16x8_shuffle
simd128
与i8x16_shuffle
相同,只是操作起来好像输入是八个 16 位整数,仅需 8 个索引即可重排。 - i16x8_splat
simd128
创建具有相同 lanes 的 vector。 - i16x8_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的八个 16 位整数一样。 - i16x8_sub_sat
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的八个 16 位有符号整数一样,在溢出到i16::MIN
时会饱和。 - i32x4
simd128
从提供的操作数实现 SIMD 值。 - i32x4_abs
simd128
按 lane-wise 包装绝对值。 - i32x4_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的四个 32 位整数一样。 - i32x4_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - i32x4_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - i32x4_dot_i16x8
simd128
在两个输入 vectors 中按 lane-wise 乘以带符号的 16 位整数,并将完整的 32 位结果的相邻对相加。 - i32x4_eq
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位整数的两个 vectors 一样。 - i32x4_extadd_pairwise_i16x8
simd128
整数扩展成对加法产生扩展结果 (比输入宽两倍的结果)。 - i32x4_extadd_pairwise_u16x8
simd128
整数扩展成对加法产生扩展结果 (比输入宽两倍的结果)。 - i32x4_extend_high_i16x8
simd128
将较小 lane vector 的高一半转换为较大 lane vector,并对其进行符号扩展。 - i32x4_extend_high_u16x8
simd128
将较小 lane vector 的高一半转换为较大 lane vector,扩展为零。 - i32x4_extend_low_i16x8
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,并扩展符号。 - i32x4_extend_low_u16x8
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,扩展为零。 - i32x4_extmul_high_i16x8
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i32x4_extmul_high_u16x8
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i32x4_extmul_low_i16x8
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i32x4_extmul_low_u16x8
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i32x4_extract_lane
simd128
从解释为 4 个包装的 i32 数字的 128 位 vector 中提取 lane。 - i32x4_ge
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位有符号整数的两个 vectors 一样。 - i32x4_gt
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位有符号整数的两个 vectors 一样。 - i32x4_le
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位有符号整数的两个 vectors 一样。 - i32x4_load_extend_i16x4⚠
simd128
加载四个 16 位整数,并将每个符号扩展到 32 位 lane - i32x4_load_extend_u16x4⚠
simd128
加载四个 16 位整数,零加载一个整数到 32 位 lane - i32x4_lt
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位有符号整数的两个 vectors 一样。 - i32x4_max
simd128
比较 lane-wise 有符号整数,并返回每对的最大值。 - i32x4_min
simd128
比较 lane-wise 有符号整数,并返回每对中的最小值。 - i32x4_mul
simd128
将两个 128 位 vectors 相乘,就好像它们是两个包装的四个 32 位有符号整数一样。 - i32x4_ne
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位整数的两个 vectors 一样。 - i32x4_neg
simd128
对解释为四个 32 位有符号整数的 128 位 vectors 求反 - i32x4_replace_lane
simd128
从解释为 4 个包装的 i32 编号的 128 位 vector 替换一个 lane。 - i32x4_shl
simd128
将每个 lane 向左移动指定的位数。 - i32x4_shr
simd128
将每个 lane 向右移动指定的位数,并扩展符号。 - i32x4_shuffle
simd128
与i8x16_shuffle
相同,但操作时如同输入为 4 32 位整数,仅需 4 个索引即可重排。 - i32x4_splat
simd128
创建具有相同 lanes 的 vector。 - i32x4_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的四个 32 位整数一样。 - i32x4_trunc_sat_f32x4
simd128
将解释为四个 32 位浮点数的 128 位 vector 转换为包含四个 32 位带符号整数的 128 位 vector。 - i32x4_trunc_sat_f64x2_zero
simd128
使用 IEEEconvertToIntegerTowardZero
函数将两个双精度浮点 lanes 饱和转换为两个较低的整数 lanes。 - i64x2
simd128
从提供的操作数实现 SIMD 值。 - i64x2_abs
simd128
按 lane-wise 包装绝对值。 - i64x2_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的两个 64 位整数一样。 - i64x2_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - i64x2_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - i64x2_eq
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位整数的两个 vectors。 - i64x2_extend_high_i32x4
simd128
将较小 lane vector 的高一半转换为较大 lane vector,并对其进行符号扩展。 - i64x2_extend_high_u32x4
simd128
将较小 lane vector 的高一半转换为较大 lane vector,扩展为零。 - i64x2_extend_low_i32x4
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,并扩展符号。 - i64x2_extend_low_u32x4
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,扩展为零。 - i64x2_extmul_high_i32x4
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i64x2_extmul_high_u32x4
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i64x2_extmul_low_i32x4
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i64x2_extmul_low_u32x4
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - i64x2_extract_lane
simd128
从解释为 2 个包装的 i64 编号的 128 位 vector 中提取 lane。 - i64x2_ge
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位有符号整数的两个 vectors。 - i64x2_gt
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位有符号整数的两个 vectors。 - i64x2_le
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位有符号整数的两个 vectors。 - i64x2_load_extend_i32x2⚠
simd128
加载两个 32 位整数并将每个符号扩展到 64 位 lane - i64x2_load_extend_u32x2⚠
simd128
加载两个 32 位整数,零加载每个整数到 64 位 lane - i64x2_lt
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位有符号整数的两个 vectors。 - i64x2_mul
simd128
将两个 128 位 vectors 相乘,就好像它们是两个包装的两个 64 位整数一样。 - i64x2_ne
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位整数的两个 vectors。 - i64x2_neg
simd128
对解释为两个 64 位有符号整数的 128 位 vectors 求反 - i64x2_replace_lane
simd128
从一个解释为 2 个包装的 i64 编号的 128 位 vector 替换一个 lane。 - i64x2_shl
simd128
将每个 lane 向左移动指定的位数。 - i64x2_shr
simd128
将每个 lane 向右移动指定的位数,并扩展符号。 - i64x2_shuffle
simd128
与i8x16_shuffle
相同,但操作时就像输入是两个 64 位整数,仅需 2 个索引即可重排。 - i64x2_splat
simd128
创建具有相同 lanes 的 vector。 - i64x2_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的两个 64 位整数一样。 - 对应 wasm 的
memory.grow
指令 - 对应 wasm 的
memory.size
指令 - u8x16
simd128
从提供的操作数实现 SIMD 值。 - u8x16_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的 16 个 8 位整数一样。 - u8x16_add_sat
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的 16 个 8 位无符号整数一样,在溢出到u8::MAX
时会饱和。 - u8x16_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - u8x16_avgr
simd128
lane-wise 舍入平均值。 - u8x16_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - u8x16_eq
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位整数的两个 vectors 一样。 - u8x16_extract_lane
simd128
从解释为 16 个包装的 u8 数字的 128 位 vector 中提取一个 lane。 - u8x16_ge
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位无符号整数的两个 vectors 一样。 - u8x16_gt
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位无符号整数的两个 vectors 一样。 - u8x16_le
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位无符号整数的两个 vectors 一样。 - u8x16_lt
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位无符号整数的两个 vectors 一样。 - u8x16_max
simd128
比较 lane-wise 无符号整数,并返回每对的最大值。 - u8x16_min
simd128
比较 lane-wise 无符号整数,并返回每对中的最小值。 - u8x16_narrow_i16x8
simd128
通过使每个 lane 变窄,将两个输入 vectors 转换为较小的 lane vector。 - u8x16_ne
simd128
比较两个 128 位 vectors,就好像它们是 16 个 8 位整数的两个 vectors 一样。 - u8x16_popcnt
simd128
计算每个 lane 内设置为 1 的位数。 - u8x16_replace_lane
simd128
从解释为 16 个包装的 u8 数字的 128 位 vector 替换一个 lane。 - u8x16_shl
simd128
将每个 lane 向左移动指定的位数。 - u8x16_shr
simd128
将每个 lane 向右移动指定的位数,以零为单位。 - u8x16_shuffle
simd128
返回一个新的 vector,其 lanes 从 16 个 immediate 操作数中指定的两个输入 vectors$a
和$b
的 lanes 中选择。 - u8x16_splat
simd128
创建具有相同 lanes 的 vector。 - u8x16_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的 16 个 8 位整数一样。 - u8x16_sub_sat
simd128
减去两个 128 位 vectors,就好像它们是两个包装的 16 个 8 位无符号整数,溢出时饱和到 0. - u8x16_swizzle
simd128
返回带有从第二个输入 vectors
中指定的第一个输入 vectora
的 lanes 中选择的 lanes 的新 vector。 - u16x8
simd128
从提供的操作数实现 SIMD 值。 - u16x8_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的八个 16 位整数一样。 - u16x8_add_sat
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的八个 16 位无符号整数一样,在溢出到u16::MAX
时会饱和。 - u16x8_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - u16x8_avgr
simd128
lane-wise 舍入平均值。 - u16x8_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - u16x8_eq
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位整数的两个 vectors 一样。 - u16x8_extadd_pairwise_u8x16
simd128
整数扩展成对加法产生扩展结果 (比输入宽两倍的结果)。 - u16x8_extend_high_u8x16
simd128
将较小 lane vector 的高一半转换为较大 lane vector,扩展为零。 - u16x8_extend_low_u8x16
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,扩展为零。 - u16x8_extmul_high_u8x16
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - u16x8_extmul_low_u8x16
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - u16x8_extract_lane
simd128
从解释为 8 个包装的 u16 数字的 128 位 vector 中提取一个 lane。 - u16x8_ge
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位无符号整数的两个 vectors 一样。 - u16x8_gt
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位无符号整数的两个 vectors 一样。 - u16x8_le
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位无符号整数的两个 vectors 一样。 - u16x8_load_extend_u8x8⚠
simd128
加载 8 个 8 位整数,零加载每个整数至 16 位 lane - u16x8_lt
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位无符号整数的两个 vectors 一样。 - u16x8_max
simd128
比较 lane-wise 无符号整数,并返回每对的最大值。 - u16x8_min
simd128
比较 lane-wise 无符号整数,并返回每对中的最小值。 - u16x8_mul
simd128
将两个 128 位 vectors 相乘,就好像它们是两个包装的八个 16 位有符号整数一样。 - u16x8_narrow_i32x4
simd128
通过使每个 lane 变窄,将两个输入 vectors 转换为较小的 lane vector。 - u16x8_ne
simd128
比较两个 128 位 vectors,就好像它们是 8 个 16 位整数的两个 vectors 一样。 - u16x8_replace_lane
simd128
从解释为 8 个包装的 u16 数字的 128 位 vector 替换一个 lane。 - u16x8_shl
simd128
将每个 lane 向左移动指定的位数。 - u16x8_shr
simd128
将每个 lane 向右移动指定的位数,以零为单位。 - u16x8_shuffle
simd128
与i8x16_shuffle
相同,只是操作起来好像输入是八个 16 位整数,仅需 8 个索引即可重排。 - u16x8_splat
simd128
创建具有相同 lanes 的 vector。 - u16x8_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的八个 16 位整数一样。 - u16x8_sub_sat
simd128
减去两个 128 位 vectors,就好像它们是两个包装的八个 16 位无符号整数,溢出时饱和到 0. - u32x4
simd128
从提供的操作数实现 SIMD 值。 - u32x4_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的四个 32 位整数一样。 - u32x4_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - u32x4_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - u32x4_eq
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位整数的两个 vectors 一样。 - u32x4_extadd_pairwise_u16x8
simd128
整数扩展成对加法产生扩展结果 (比输入宽两倍的结果)。 - u32x4_extend_high_u16x8
simd128
将较小 lane vector 的高一半转换为较大 lane vector,扩展为零。 - u32x4_extend_low_u16x8
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,扩展为零。 - u32x4_extmul_high_u16x8
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - u32x4_extmul_low_u16x8
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - u32x4_extract_lane
simd128
从解释为 4 个包装的 u32 数字的 128 位 vector 中提取一个 lane。 - u32x4_ge
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位无符号整数的两个 vectors 一样。 - u32x4_gt
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位无符号整数的两个 vectors 一样。 - u32x4_le
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位无符号整数的两个 vectors 一样。 - u32x4_load_extend_u16x4⚠
simd128
加载四个 16 位整数,零加载一个整数到 32 位 lane - u32x4_lt
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位无符号整数的两个 vectors 一样。 - u32x4_max
simd128
比较 lane-wise 无符号整数,并返回每对的最大值。 - u32x4_min
simd128
比较 lane-wise 无符号整数,并返回每对中的最小值。 - u32x4_mul
simd128
将两个 128 位 vectors 相乘,就好像它们是两个包装的四个 32 位有符号整数一样。 - u32x4_ne
simd128
比较两个 128 位 vectors,就好像它们是 4 个 32 位整数的两个 vectors 一样。 - u32x4_replace_lane
simd128
从解释为 4 个包装的 u32 数字的 128 位 vector 替换一个 lane。 - u32x4_shl
simd128
将每个 lane 向左移动指定的位数。 - u32x4_shr
simd128
将每个 lane 向右移动指定的位数,以零为单位。 - u32x4_shuffle
simd128
与i8x16_shuffle
相同,但操作时如同输入为 4 32 位整数,仅需 4 个索引即可重排。 - u32x4_splat
simd128
创建具有相同 lanes 的 vector。 - u32x4_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的四个 32 位整数一样。 - u32x4_trunc_sat_f32x4
simd128
将解释为四个 32 位浮点数的 128 位 vector 转换为四个 32 位无符号整数的 128 位 vector。 - u32x4_trunc_sat_f64x2_zero
simd128
使用 IEEEconvertToIntegerTowardZero
函数将两个双精度浮点 lanes 饱和转换为两个较低的整数 lanes。 - u64x2
simd128
从提供的操作数实现 SIMD 值。 - u64x2_add
simd128
将两个 128 位 vectors 相加,就好像它们是两个包装的两个 64 位整数一样。 - u64x2_all_true
simd128
如果所有 lanes 都不为零,则返回 true,否则返回 false。 - u64x2_bitmask
simd128
提取a
中每个 lane 的高位并生成一个所有位连接的标量掩码。 - u64x2_eq
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位整数的两个 vectors。 - u64x2_extend_high_u32x4
simd128
将较小 lane vector 的高一半转换为较大 lane vector,扩展为零。 - u64x2_extend_low_u32x4
simd128
将较小 lane vector 的下半部分转换为较大 lane vector,扩展为零。 - u64x2_extmul_high_u32x4
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - u64x2_extmul_low_u32x4
simd128
lane-wise 整数扩展乘法产生两倍于输入的结果。 - u64x2_extract_lane
simd128
从解释为 2 个包装的 u64 数字的 128 位 vector 中提取一个 lane。 - u64x2_load_extend_u32x2⚠
simd128
加载两个 32 位整数,零加载每个整数到 64 位 lane - u64x2_mul
simd128
将两个 128 位 vectors 相乘,就好像它们是两个包装的两个 64 位整数一样。 - u64x2_ne
simd128
比较两个 128 位 vectors,就好像它们是两个 64 位整数的两个 vectors。 - u64x2_replace_lane
simd128
从解释为 2 个包装的 u64 数字的 128 位 vector 替换一个 lane。 - u64x2_shl
simd128
将每个 lane 向左移动指定的位数。 - u64x2_shr
simd128
将每个 lane 向右移动指定的位数,以零为单位。 - u64x2_shuffle
simd128
与i8x16_shuffle
相同,但操作时就像输入是两个 64 位整数,仅需 2 个索引即可重排。 - u64x2_splat
simd128
创建具有相同 lanes 的 vector。 - u64x2_sub
simd128
将两个 128 位 vectors 相减,就好像它们是两个包装的两个 64 位整数一样。 - 生成
unreachable
指令,这会导致无条件的 trap。 - v128_and
simd128
对两个输入的 128 位 vectors 进行按位和运算,返回结果 vector。 - v128_andnot
simd128
a
的位按位与与b
的位进行逻辑逆。 - v128_any_true
simd128
如果设置了a
中的任何一位,则返回true
,否则返回false
。 - v128_bitselect
simd128
使用c
中的位掩码选择v1
为 1 和v2
的位 0. - v128_load⚠
simd128
从给定的堆地址加载v128
vector。 - v128_load8_lane⚠
simd128
从m
加载一个 8 位值并将v
的 laneL
设置为该值。 - v128_load8_splat⚠
simd128
加载单个元素,然后将其放置到 v128 vector 的所有 lane 中。 - v128_load16_lane⚠
simd128
从m
加载 16 位值并将v
的 laneL
设置为该值。 - v128_load16_splat⚠
simd128
加载单个元素,然后将其放置到 v128 vector 的所有 lane 中。 - v128_load32_lane⚠
simd128
从m
加载 32 位值并将v
的 laneL
设置为该值。 - v128_load32_splat⚠
simd128
加载单个元素,然后将其放置到 v128 vector 的所有 lane 中。 - v128_load32_zero⚠
simd128
将 32 位元素加载到 vector 的低位并将所有其他位设置为零。 - v128_load64_lane⚠
simd128
从m
加载 64 位值并将v
的 laneL
设置为该值。 - v128_load64_splat⚠
simd128
加载单个元素,然后将其放置到 v128 vector 的所有 lane 中。 - v128_load64_zero⚠
simd128
将 64 位元素加载到 vector 的低位并将所有其他位设置为零。 - v128_not
simd128
翻转 128 位输入 vector 的每个位。 - v128_or
simd128
对两个输入的 128 位 vectors 进行按位或逻辑运算,返回结果 vector。 - v128_store⚠
simd128
将v128
vector 存储到给定的堆地址。 - v128_store8_lane⚠
simd128
将来自v
的L
lane 的 8 位值存储到m
- v128_store16_lane⚠
simd128
将v
的 laneL
的 16 位值存储到m
- v128_store32_lane⚠
simd128
将来自v
的L
lane 的 32 位值存储到m
- v128_store64_lane⚠
simd128
将来自v
的L
lane 的 64 位值存储到m
- v128_xor
simd128
对两个输入的 128 位 vectors 进行按位异或,返回结果 vector。