Бедный альтернатива _mm_cvttpd_epi64

На 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 ответов

Другие вопросы по тегам