为了账号安全,请及时绑定邮箱和手机立即绑定

英特尔avx2中的movemask指令是否有反指令?

英特尔avx2中的movemask指令是否有反指令?

开满天机 2020-01-05 04:00:24
movemask指令使用__m256i并返回int32,其中每个位(前4位,8位或全部32位,取决于输入矢量元素的类型)是相应矢量元素的最高有效位。我想反过来:取一个32(只有4、8或32个最低有效位才有意义),然后得到一个__m256i,其中每个int8,int32或int64大小的块的最高有效位都设置为原始一点。基本上,我想从压缩的位掩码转换为可以被其他AVX2指令(例如maskstore,maskload,mask_gather)用作掩码的位掩码。我无法快速找到执行该指令的指令,所以我在这里问。如果没有一条指令具有该功能,那么您能想到一个巧妙的技巧可以通过很少的指令来实现这一目标吗?我当前的方法是使用256个元素的查找表。我想在没有太多其他事情发生的循环中使用此操作,以加快速度。注意,我对长的多指令序列或实现此操作的小循环不太感兴趣。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 546 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信