reduce

std.simd.reduce

fun hsum_f32x4

pub fun hsum_f32x4(v: f32x4) f32;

f32x4 通道的水平求和(horizontal sum)

v:输入向量 retv[0] + v[1] + v[2] + v[3]

fun hsum_f64x2

pub fun hsum_f64x2(v: f64x2) f64;

f64x2 通道的水平求和

v:输入向量 retv[0] + v[1]

fun hsum_i32x4

pub fun hsum_i32x4(v: i32x4) i32;

i32x4 通道的水平求和(截断/溢出包装)

v:输入向量 retv[0] + v[1] + v[2] + v[3]

fun hsum_u32x4

pub fun hsum_u32x4(v: u32x4) u32;

u32x4 通道的水平求和(截断/溢出包装)

v:输入向量 retv[0] + v[1] + v[2] + v[3]

fun hmin_f32x4

pub fun hmin_f32x4(v: f32x4) f32;

f32x4 通道的水平最小值

v:输入向量 ret:最小的通道值

fun hmax_f32x4

pub fun hmax_f32x4(v: f32x4) f32;

f32x4 通道的水平最大值

v:输入向量 ret:最大的通道值

fun hmin_i32x4

pub fun hmin_i32x4(v: i32x4) i32;

i32x4 通道的水平最小值

v:输入向量 ret:最小的通道值

fun hmax_i32x4

pub fun hmax_i32x4(v: i32x4) i32;

i32x4 通道的水平最大值

v:输入向量 ret:最大的通道值

fun dot_f32x4

pub fun dot_f32x4(a: f32x4, b: f32x4) f32;

两个 f32x4 向量的点积

乘法是单通道向量运算(在支持的目标上向量化);水平求和将四个乘积折叠。

a:第一个向量 b:第二个向量 reta[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3]