gle*_*uld 5 c++ performance simd avx
在关于SO的另一个问题中,我们尝试(并成功)找到替换AVX缺失指令的方法:
__m256d _mm256_dp_pd(__m256d m1, __m256d m2, const int mask);
Run Code Online (Sandbox Code Playgroud)
谁知道为什么这条指令丢失了?部分答案在这里.
Pau*_*l R 12
这个和各种其他AVX限制的根本原因在于,架构上AVX只是两个并排的SSE执行单元 - 你会注意到几乎没有AVX指令在一个向量的两个128位半部分的边界上水平操作(在(vpalignr)的情况下尤其令人讨厌.通常,您实际上只能并行获得两个128位SSE操作,这对于大多数仅以元素方式操作的指令非常有用,但不如正确的256位SIMD实现有用.