从 __m128 内在函数中获取 uint64_t?

问题描述

我可以使用 _mm_set_epi64 将两个 uint64_t 存储到一个 __m128 内在函数中。但是四处寻找,我看到了各种方法来取回值:有 reinterpret_cast(它是邪恶的双 C 风格强制转换),它是兄弟 union { __m128; uint64[2]; };memcpy,有访问字段__m128。有 __m128i _mm_load_si128(__m128i *p);,但我没有看到 _mm_get_* 函数。我错过了什么吗?如果有 _mm_set_epi64,那么必须有一种非强制转换的方式来让 uint64_t 退出,对吗? (否则他们为什么要费心提供{{​​1}}?)

我看到 Get member of __m128 by index? 但“正确答案”有一个断开的链接并暗示有一个 _mm_set_epi64 函数,但我看到的所有 load 都将 load 映射到 { {1}}。不应该有 __m128 吗?

解决方法

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

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

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