Мы должны выполнить побитовую операцию XOR для двух массивов, каждый из которых содержит 5 элементов uint64_t (long без знака long), а затем выполнить подсчет (pop pop) единиц.Как оптимизировать использование регистров YMM шириной 256 битов AVX2, VPXOR AVX2 и popcount для достижения этой цели за минимальные тактовые циклы.
Сейчас мы делаем это, используя следующий фрагмент кода
for (j = 0; j < 5; j++){
xorResult = cylinderArrayVectorA[j] ^ cylinderArrayVectorB[j];
noOfOnes = _mm_popcnt_u64(xorResult);
sumOfOnes += noOfOnes;
У нас есть 260 битов в массиве A и массиве B. Что является оптимизированным способом выполнения AVX2 VPXOR и popcount за минимальное время?циклы.