The Intel ISA reference documentation for this instruction is clear:
VPBLENDVB xmm1, xmm2, xmm3/m128, xmm4
Select byte values from
xmm2
andxmm3/m128
using mask bits in the specified mask register,xmm4
, and store the values intoxmm1
.
xmm1
is the destination,xmm2/3/4
are source operands
So what does this become using AT&T syntax? We know that the destination register must be last, but what is the order of source operands?
vpblendvb $xmm2, $xmm3, $xmm4, $xmm1
or
vpblendvb $xmm4, $xmm3, $xmm2, $xmm1
or something else?