paddq (64bit + 64bit = 64bit):
movq mm7, mmc
paddd mmc, mma
psubd mm7, 0×80000000
psubd mmc, 0×80000000
pcmpgtd mm7, mmc
paddd mmc, 0×80000000
psllq mm7, 32
psubd mmc, mm7
paddq (64bit + 64bit = 64bit):
movq mm7, mmc
paddd mmc, mma
psubd mm7, 0×80000000
psubd mmc, 0×80000000
pcmpgtd mm7, mmc
paddd mmc, 0×80000000
psllq mm7, 32
psubd mmc, mm7
packusqd (saturated clamp from unsigned long long to unsigned long),
packssqud (saturated clamp from signed long long to unsigned long):
There is a condition for unsigned long long inputs, range is “only” [0x0000000000000000, 0x7FFFFFFFFFFF].
There is a no condition for signed long long inputs.
// from-scratch, no helper available
/* -1 */
pcmpeqd mm6, [...]