如何使用 SIMD 比较两个向量并获得单个布尔结果?
我有两个分别包含 4 个整数的向量,我想使用 SIMD 命令来比较它们(假设根据比较结果生成一个结果向量,其中每个条目为 0 或 1)。
然后,我想将结果向量与 4 个零的向量进行比较,只有当它们相等时才执行某些操作。
你知道我可以使用哪些 SIMD 命令来做到这一点吗?
I have two vectors of 4 integers each and I'd like to use a SIMD command to compare them (say generate a result vector where each entry is 0 or 1 according to the result of the comparison).
Then, I'd like to compare the result vector to a vector of 4 zeros and only if they're equal do something.
Do you know what SIMD commands I can use to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要比较两个 SIMD 向量:
注意:
vector1
、vector2
、result
均需要为 16 字节对齐{ -1, -1, 0, 0 }
)UPDATE
如果您只想要一个布尔值情况的结果所有 4 个元素都匹配,那么你可以这样做:
To compare two SIMD vectors:
Notes:
vector1
,vector2
,result
all need to be 16 byte aligned{ -1, -1, 0, 0 }
for above code example)UPDATE
If you just want a single Boolean result for the case where all 4 elements match then you can do it like this: