我们必须对两个包含uint64_t的5个元素(无符号long long)的两个数组执行按位XOR操作,然后执行1的计数(弹出计数)。 通过使用AVX2 256位宽的YMM寄存器,AVX2 VPXOR和popcount来以最小的时钟周期实现此目标的优化方法是什么?
现在,我们通过遵循以下代码段来实现此目的
for (j = 0; j < 5; j++){
xorResult = cylinderArrayVectorA[j] ^ cylinderArrayVectorB[j];
noOfOnes = _mm_popcnt_u64(xorResult);
sumOfOnes += noOfOnes;
阵列A和阵列B中有260位。在最小时钟周期内执行AVX2 VPXOR和popcount的优化方法是什么。