07-24-2023, 02:53 AM
The Intel ISA reference documentation for this instruction is clear:
VPBLENDVB xmm1, xmm2, xmm3/m128, xmm4
>Select byte values from `xmm2` and `xmm3/m128` using mask bits in the specified mask register, `xmm4`, and store the values into `xmm1`.
>`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?
VPBLENDVB xmm1, xmm2, xmm3/m128, xmm4
>Select byte values from `xmm2` and `xmm3/m128` using mask bits in the specified mask register, `xmm4`, and store the values into `xmm1`.
>`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?