assembly - 有没有办法在一条指令中比较 2 个压缩的 qwords?
问题描述
我正在尝试SSE
/AVX
扩展,现在正在查看pcmpxstrx
指令系列。正如 Intel 指令参考中所指定的,它提供了比较存储在xmm
寄存器中的 2 个字符串的能力。所以例如
mov rax, 0x22223333
movq xmm0, rax
mov rax, 0x22221111
movq xmm1, rax
pcmpistri xmm0, xmm1, 0001b
结果设置rcx
为值1。这在单词上效果很好,但我正在寻找一种方法来packed qwords
在ymm
寄存器中执行这种比较。据我所知,甚至AVX
没有提升pcmpistri
到 256 位
VPCMPISTRI xmm1, xmm2/m128, imm8 AVX
所以唯一的方法是使用VPCMPEQQ
(BSF
2条指令)?
解决方案
推荐阅读
- ruby - 如何声明 YAML.load() 将返回哪个类,以便我的 IDE 在检查中正确识别加载的对象?
- c - 仅当它在 C 中可用时才包含头文件?
- html - 如何分别编辑一个输入字段的两个标签?
- memory - 在 RAM 内存中:CL 是访问内存的总 RAM 周期?
- java - 继续收到“java.lang.IllegalArgumentException:没有为该名称定义查询”,即使我有具有适当名称的@NamedQuery
- javascript - React 在不可拖动的元素上启用拖动事件
- kubernetes - 通过 Splunk 中的用户配置文件记录 k8s kubectl 命令相关活动
- python-3.x - Python3 ElementTree 未按预期运行
- ruby-on-rails - Ruby/Rails:散列参与者电话号码数组以唯一标识组/彩信文本对话?
- android - 将 jsonObject 转换为字符串 jsonarray 并在对话框中显示的问题