pshradd Operation Font Conventions
if (PR[qp]) {
check_target_register
;

x[0] = GR[r2]{15:0}; y[0] = GR[r3]{15:0};
x[1] = GR[r2]{31:16}; y[1] = GR[r3]{31:16};
x[2] = GR[r2]{47:32}; y[2] = GR[r3]{47:32};
x[3] = GR[r2]{63:48}; y[3] = GR[r3]{63:48};

max = sign_ext(0x7fff, 16);
min = sign_ext(0x8000, 16);

for (i = 0; i < 4; i++) {
temp[i] = shift_right_signed(sign_ext(x[i], 16), count2);

res[i] = temp[i] + sign_ext(y[i], 16);
if (res[i] > max)
res[i] = max;
if (res[i] < min)
res[i] = min;
}

GR[r1] = concatenate4(res[3], res[2], res[1], res[0]);
GR[r1].nat = GR[r2].nat || GR[r3].nat;
}