Как называется встроенная функция gcc
для сравнения __m256
и __m256i
(набор инструкций AVX)?
SIMD (AVX) сравнить
Ответы (1)
Как указано в документации Intel AVX
_mm256_cmp_ps, _mm256_cmp_pd
и т.д
Обратите внимание, что вместо нескольких инструкций сравнения вы должны передать перечисление, указывающее, что сравнение выполнено. Например:
res = _mm256_cmp_ps(a,b, _CMP_LT_OQ); // AVX res = a < b
person
Joel Falcou
schedule
17.02.2012
Спасибо, а как насчет сравнения
__m256i
типа? Эти две функции обрабатывают только __m256
и __m256d
?
- person Cartesius00; 18.02.2012
IIRC, его нет, вы должны использовать _mm256_extractf128_si256 для извлечения целых чисел в число с плавающей запятой, а затем использовать другие
- person Joel Falcou; 18.02.2012
Итак, нет быстрого способа сравнить два
int []
(массивы целых чисел длиной 8), используя __mm256
? Я имею в виду использование классического сценария load, cmp...
.
- person Cartesius00; 18.02.2012
@James, AVX никогда полностью не поддерживал операции с
__m256i
. Это будет в AVX2.
- person Mysticial; 18.02.2012
Кроме того, обработка символов в векторном контексте часто бывает тусклой, поскольку динамический диапазон значений ограничен 8 битами. 16-битный вектор начинает быть интересным, как и 32-битный.
- person Joel Falcou; 18.02.2012