我正在研究Intel intrinsics guide中的扩展和压缩操作。我对这两个概念感到困惑:
为了__m128d _mm_mask_expand_pd (__m128d src, __mmask8 k, __m128d a) == vexpandpd
从 a 加载连续的活动双精度(64 位)浮点元素(它们各自的位在掩码 k 中设置),并使用 writemask k 将结果存储在 dst 中(当相应的掩码位为没有设置)。
为了__m128d _mm_mask_compress_pd (__m128d src, __mmask8 k, __m128d a) == vcompresspd
将 a 中的活动双精度(64 位)浮点元素(在 writemask k 中设置了相应位的元素)连续存储到 dst,并从 src 传递其余元素。
有没有更清晰的描述或谁能解释更多?