我试图从 AVX(2)中找到_mm256_xor_si256和_mm256_xor_ps内在函数之间的实际区别。
它们分别映射到 intel 指令:
- vpxor ymm, ymm, ymm
- vxorps ymm, ymm, ymm
英特尔将其定义为:
dst[255:0] := (a[255:0] XOR b[255:0])
dst[MAX:256] := 0
相对
FOR j := 0 to 7
i := j*32
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ENDFOR
dst[MAX:256] := 0
但坦率地说,我看不出它们的效果有什么不同?它们都异或 256 位。但是后者可以用在AVX和AVX2上,第一个只能用在AVX2上。为什么你会使用第一个,兼容性较低?