@instruction<EOL><INDENT>def PADDD(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>) + Operators.EXTRACT(arg1, i, <NUM_LIT:32>)) & <NUM_LIT>) << i<EOL><DEDENT>op0.write(res)<EOL>
PADDD: Packed add with double words

Performs a SIMD add of the packed integers from the source operand (second operand)
and the destination operand (first operand), and stores the packed integer results
in the destination operand

Example :
$xmm1.v16_int8 = {..., 0x00000003, 0x00000001}
$xmm2.v16_int8 = {..., 0x00000004, 0x00000002}
# after paddd xmm1, xmm2, we get
$xmm1.v16_int8 = {..., 0x00000007, 0x00000003}