穷人可以替代_mm_cvttpd_epi64

时间:2017-06-12 17:24:17

标签: c++ c avx avx512

AXV512DQ上,有_mm_cvttpd_epi64,例如我们找到的文件avx512vldqintrin.h

static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvttpd_epi64 (__m128d __A) {
  return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A,
               (__v2di) _mm_setzero_si128(),
               (__mmask8) -1);
}

将两个打包的64位浮点数(__m128d)转换为两个打包的64位整数(__m128i)。还有_mm256_cvttpd_epi64用于将四个打包的64位浮点数(__m256d)转换为四个打包的64位整数(__m256i)。

但是,许多机器不支持AXV512DQ。所以我想知道穷人的最佳选择是什么。

我应该说我已经满意的解决方案仅适用于64位浮点数,可以无损转换为32位浮点数。

0 个答案:

没有答案