0

据我所知,VEXTRACTF128 和 VEXTRACTI128 指令执行相同的操作,具有相同的延迟、相同的吞吐量并使用相同的端口。我无法分辨它们之间的唯一区别是 VEXTRACTF128 只需要 AVX VEXTRACTI128 需要 AVX2。 如果这是唯一有效的区别,为什么要使用 VEXTRACTI128?

我在 Agner Fog 的 vectroclass 中看到了以下内容,我推断这意味着指令之间存在一些重要区别。也许他们共享不同的域(浮点或整数)?

#if defined (_MSC_VER) && _MSC_VER <= 1700 && ! defined(__INTEL_COMPILER)
    __m128i sum5  = _mm256_extractf128_si256(sum4,1);                // bug in MS VS 11
#else
    __m128i sum5  = _mm256_extracti128_si256(sum4,1);                // get high sum
#endif
4

0 回答 0