Asembler x86/Instrukcje/SSSE3/PMADDUBSW
PMADDUBSW wykonuje mnożenie dwóch wektorów bajtów, traktując bajty z wektora docelowego jako liczby bez znaku, natomiast ze źródłowego - ze znakiem; wynikiem pośrednim jest wektor 16-bitowych liczb ze znakiem. Następnie sąsiednie elementy tego wektora są do siebie dodawane (jak w rozkazie PHADDSW, a wyniki nasycane - w przykładzie ostatniemu działaniu odpowiada psuedofunkcja Sat.
Np. rozkazowi PMADDUBSW xmm1, xmm2 odpowiada:
{ wektor pośredni }
for i:=0 to 15 do
temp[i] := xmm1[i] * xmm2[i];
{ sumowanie }
for i:=0 to 8 do
xmm1[i] := Sat(temp[2*i] + temp[2*i+1]);