Mar*_*tin 8 x86 assembly simd avx512
我正在研究英特尔内在指南中的扩展和压缩操作.我对这两个概念感到困惑:
对于 __m128d _mm_mask_expand_pd (__m128d src, __mmask8 k, __m128d a) == vexpandpd
从a(在掩码k中设置各自的位)加载连续的有效双精度(64位)浮点元素,并使用写掩码k将结果存储在dst中(当相应的掩码位为时,从src复制元素)没有设置).
对于 __m128d _mm_mask_compress_pd (__m128d src, __mmask8 k, __m128d a) == vcompresspd
将有效双精度(64位)浮点元素连续存储在a(在写掩码k中设置各自的位)到dst,并从src传递剩余的元素.
是否有更清楚的描述或任何可以解释更多的人?
提前致谢.
这些指令实现了APL运算符\(展开)和/(压缩). 扩大需要一些的位掩码α 米 ≥ Ñ其中位Ñ被设置和阵列ω的Ñ号码和返回的向量米数与来自ω插入到由α,其余设置为零指示的地方的数字.例如,
0 1 1 0 1 0 \ 2 3 4
Run Code Online (Sandbox Code Playgroud)
回报
0 2 3 0 4 0
Run Code Online (Sandbox Code Playgroud)
该_mm_mask_expand_pd指令为固定的m = 8 实现此运算符.
的压缩操作的索马里发展事务处的影响扩大操作,即它使用一个位掩码α选择来自ω条目,并存储这些条目连续到存储器.
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |