assembly psadbw和pshufd的实际使用

qmelpv7a  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(117)

我最近在看一个汇编代码,它在128位的xmm寄存器上使用了psadbwpshufd
根据x86架构上的here文档。它显示pshufd xmm0, xmm0, imm8,但我不明白我们如何在什么情况下实际使用它。
类似地,psadbw计算字节的绝对差的总和。所以,它是否意味着像128位寄存器(16字节)。假设我的指令是psadbw xmm0 xmm5,这和|1st byte of xmm5 - 1st byte of xmm0| + |2nd byte of xmm5 - 2nd byte of xmm0| + ... + | 16th byte of xmm5 - 16th byte of xmm0|一样吗?如果不是,那是如何工作的。
谁能提供一个实际的场景?

eh57zj3b

eh57zj3b1#

这里有一个实际的场景。psadbw指令Map到_mm_sad_epu8 SSE2内部,可以在Chromium的zlib分支(code)中找到。
另一用途是在运动估计中:https://wiki.mozilla.org/SIMD/Uses/SAD

相关问题