Бедный альтернатива _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-разрядные операции.

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …