5

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 位浮点数。

4

0 回答 0