该指令的Intel ISA参考文档很清楚:
VPBLENDVB xmm1, xmm2, xmm3/m128, xmm4
Run Code Online (Sandbox Code Playgroud)
从指定的掩码寄存器中选择字节值
xmm2
并xmm3/m128
使用掩码位xmm4
,并将值存储到xmm1
.
xmm1
是目的地,xmm2/3/4
是源操作数
那么使用AT&T语法会变成什么呢?我们知道目标寄存器必须是最后一个,但源操作数的顺序是什么?
vpblendvb $xmm2, $xmm3, $xmm4, $xmm1
Run Code Online (Sandbox Code Playgroud)
要么
vpblendvb $xmm4, $xmm3, $xmm2, $xmm1
Run Code Online (Sandbox Code Playgroud)
或者是其他东西?