@instruction<EOL><INDENT>def PSLLD(cpu, op0, op1):<DEDENT>
arg0 = op0.read()<EOL>arg1 = op1.read()<EOL>res = <NUM_LIT:0><EOL>for i in range(<NUM_LIT:0>, op0.size, <NUM_LIT:32>):<EOL><INDENT>res |= ((Operators.EXTRACT(arg0, i, <NUM_LIT:32>) << arg1) & <NUM_LIT>) << i<EOL><DEDENT>op0.write(res)<EOL>
PSLLD: Packed shift left logical with double words

Shifts the destination operand (first operand) to the left by the number of bytes specified
in the count operand (second operand). The empty low-order bytes are cleared (set to all 0s).
If the value specified by the count operand is greater than 15, the destination operand is
set to all 0s. The count operand is an 8-bit immediate.

Example :
$xmm1.v16_int8 = {..., 0x00000003, 0x00000001}
# after pslld xmm1, 2, we get
$xmm1.v16_int8 = {..., 0x0000000c, 0x00000004}