如何使用SSE执行uint32 / float转换?
发布时间:2020-12-13 22:27:53 所属栏目:Windows 来源:网络整理
导读:在SSE中有一个函数_mm_cvtepi32_ps(__ m128i输入),它接受32位宽的有符号整数(int32_t)的输入向量,并将它们转换为浮点数. 现在,我想将输入整数解释为未签名.但是没有函数_mm_cvtepu32_ps,我找不到一个实现.你知道我在哪里可以找到这样的功能,或者至少对实现有
在SSE中有一个函数_mm_cvtepi32_ps(__ m128i输入),它接受32位宽的有符号整数(int32_t)的输入向量,并将它们转换为浮点数.
现在,我想将输入整数解释为未签名.但是没有函数_mm_cvtepu32_ps,我找不到一个实现.你知道我在哪里可以找到这样的功能,或者至少对实现有所暗示吗? unsigned int a = 2480160505; // 10010011 11010100 00222220 22222001 float a1 = a; // 01001111 00010011 11010100 00222221; float a2 = (signed int)a; // 11001110 11011000 01010111 10000010 解决方法
此功能存在于AVX-512中,但是如果你不能等到那时我唯一可以建议的是将无符号int输入值转换为较小值的对,转换它们,然后再将它们一起添加,例如
inline __m128 _mm_cvtepu32_ps(const __m128i v) { __m128i v2 = _mm_srli_epi32(v,1); // v2 = v / 2 __m128i v1 = _mm_sub_epi32(v,v2); // v1 = v - (v / 2) __m128 v2f = _mm_cvtepi32_ps(v2); __m128 v1f = _mm_cvtepi32_ps(v1); return _mm_add_ps(v2f,v1f); } UPDATE 如his answer中的@wim所述,上述解决方案对于UINT_MAX的输入值失败.这是一个更强大但效率稍低的解决方案,它应该适用于完整的uint32_t输入范围: inline __m128 _mm_cvtepu32_ps(const __m128i v) { __m128i v2 = _mm_srli_epi32(v,1); // v2 = v / 2 __m128i v1 = _mm_and_si128(v,_mm_set1_epi32(1)); // v1 = v & 1 __m128 v2f = _mm_cvtepi32_ps(v2); __m128 v1f = _mm_cvtepi32_ps(v1); return _mm_add_ps(_mm_add_ps(v2f,v2f),v1f); // return 2 * v2 + v1 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- batch-file – 检查DOS批处理文件中的参数
- 访问mscorlib.dll中的mutex类
- windows – WFPSampler编译问题 – 找不到wfpcalloutsclass
- windows – 笔记本电脑从睡眠中醒来
- windows-server-2008 – 2008 Sever随机重启
- cmd – 如何在Windows 10中通过命令启动夜灯?
- windows-store-apps – 如何信任Windows商店应用程序中的自
- windows-server-2008 – Windows Server2008 RemoteApps –
- Windows ISO8601时间戳
- xaml – 是否有任何间谍实用程序可用于通用Windows应用程序
推荐文章
站长推荐
- windows-phone-7 – 如何在Windows Phone 7中使用
- Windows Server 2012时间会提前12分钟自行设置
- window的渊源、发展过程、趋势
- windows – SFTP服务器dmz vs trusted
- windows-server-2008 – 如何将现有的Windows Se
- windows – 需要XP管理员权限的旧应用程序
- windows-server-2012 – SMB3多路径可以按策略加
- windows-10 – DEP0001:意外错误:-2147014836最
- Azure中的Windows工作流程
- 真实世界的Windows Azure成本计算示例,任何人?
热点阅读