Какво е името на вътрешния елемент на gcc
за сравняване на __m256
и __m256i
(AVX набор от инструкции)?
SIMD (AVX) сравнение
Отговори (1)
Както се казва в документацията на Intel AVX
_mm256_cmp_ps, _mm256_cmp_pd
и т.н
Обърнете внимание, че вместо да имате множество инструкции за сравнение, трябва да подадете enum, указващо извършеното сравнение. например:
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, за да извлечете цели числа в float, след което да използвате останалите
- person Joel Falcou; 18.02.2012
Така че няма бърз начин как да сравните две
int []
(масиви от int с дължина 8) с помощта на __mm256
? Имам предвид използването на класическия сценарий load, cmp...
.
- person Cartesius00; 18.02.2012
@James, AVX никога не е поддържал напълно операции на
__m256i
. Това ще дойде в AVX2.
- person Mysticial; 18.02.2012
В допълнение към това, handlign char във векторен контекст често е слаб, така или иначе, тъй като динамиката на диапазона на стойността е ограничена до 8 бита. 16-битовият вектор започва да бъде интересен, както и 32-битовият.
- person Joel Falcou; 18.02.2012