如何将 int64_t = float * int64_t 标量转换为向量代码并返回?

问题描述

我想转换这个标量代码

int64_t res = floatValue * int64Value;

使用 SSE/SIMD(使用 -march=nocona 构建),然后将该值返回为浮点:

float finalRes = res;

有可能吗?我会做这样的事情:

__m128 res = _mm_mul_ps(floatValue4,int64Value4);
__m128i res1 = _mm_cvttps_epi64(res);
__m128i res2 = _mm_cvttps_epi64(_mm_movehl_epi64(res,res));

但我似乎找不到目标平台的 _mm_cvttps_epi64_mm_movehl_epi64

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)