No subject

bogus at does.not.exist.com bogus at does.not.exist.com
Fri Mar 27 11:03:12 CET 2009


mlp_dotproduct_sse2_2 seem to be slower than any kind of C code.
Suggestions for improvement (if possible) are welcome.

Ramiro Polla
P.S.: Don't mind the comments beside the sse code. They've probably
grown to be very wrong.
P.P.S.: To remind what the code does: multiply a vector of up to 8
4-byte aligned 24-bit values (state) by 16-byte aligned 16-bit values
(coeffs).

--0015175cb2ec5b6d230468070524
Content-Type: text/x-csrc; charset=US-ASCII; name="mlpdsp_sse2.c"
Content-Disposition: attachment; filename="mlpdsp_sse2.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ftry4lnb1

REVDTEFSRV9BU01fQ09OU1QoMTYsICB4bW1fcmVnLCB4bW1tYXNrKSA9IHsweDAwMDAwZmZmMDAw
MDBmZmZVTEwsIDB4MDAwMDBmZmYwMDAwMGZmZlVMTH07CkRFQ0xBUkVfQVNNX0NPTlNUKCA4LCB1
aW50NjRfdCwgc3NlbWFzaykgPSAgMHgwMDAwMGZmZjAwMDAwZmZmVUxMOwoKc3RhdGljIGludDY0
X3QgbWxwX2RvdHByb2R1Y3Rfc3NlMl8yKGludDMyX3QgKnN0YXRlLCBpbnQzMl90ICpjb2VmZnMp
CnsKICAgIGludDY0X3QgYWNjdW0gPSAwOwoKICAgIF9fYXNtX18gdm9sYXRpbGUoCiAgICAgICAg
Im1vdnEgIk1BTkdMRShzc2VtYXNrKSIsICUlbW02XG5cdCIgLyogbW02ID0gMDAwMDBmZmYwMDAw
MGZmZiAqLwogICAgICAgICJtb3ZxICAgICAgICAgICAgICAoJTIpLCAlJW1tMVxuXHQiIC8qIG1t
MSA9IGNjY2NjY2MxY2NjY2NjYzIgKi8KICAgICAgICAicHNodWZ3ICAgICQweDg4LCAlJW1tMSwg
JSVtbTdcblx0IiAvKiBtbTcgPSBjY2MxY2NjMmNjYzFjY2MyICovCiAgICAgICAgIm1vdnEgICAg
ICAgICAgICAgICglMSksICUlbW0wXG5cdCIgLyogbW0wID0geHhzc3NzczF4eHNzc3NzMiAqLwog
ICAgICAgICJtb3ZxICAgICAgICAgICAgICUlbW0wLCAlJW1tMVxuXHQiIC8qIG1tMSA9IHh4c3Nz
c3MxeHhzc3NzczIgKi8KICAgICAgICAicHNyYWQgICAgICQweDBjLCAgICAgICAgJSVtbTBcblx0
IiAvKiBtbTAgPSB4eHh4eHNzMXh4eHh4c3MyICovCiAgICAgICAgInBhbmQgICAgICAgICAgICAg
JSVtbTYsICUlbW0xXG5cdCIgLyogbW0xID0gMDAwMDBzczEwMDAwMHNzMiAqLwogICAgICAgICJw
YWNrc3NkdyAgICAgICAgICUlbW0xLCAlJW1tMFxuXHQiIC8qIG1tMCA9IHhzczF4c3MyMHNzMTBz
czIgKi8KICAgICAgICAicG1hZGR3ZCAgICAgICAgICAlJW1tNywgJSVtbTBcblx0IiAvKiBtbTAg
PSB4aGltdWwxMnhsb211bDEyICovCiAgICAgICAgIm1vdnEgICAgICAgICAgICAgJSVtbTAsICUl
bW0zXG5cdCIgLyogbW0zID0geGhpbXVsMTJ4bG9tdWwxMiAqLwogICAgICAgICJtb3ZxICAgICAg
ICAgICAgICUlbW0wLCAlJW1tNFxuXHQiIC8qIG1tNCA9IHhoaW11bDEyeGxvbXVsMTIgKi8KICAg
ICAgICAicHNyYWQgICAgICQweDFmLCAgICAgICAgJSVtbTBcblx0IiAvKiBtbTAgPSB4eHh4aGkx
Mnh4eHhsbzEyICovCiAgICAgICAgInB1bnBja2xkcSAgICAgICAgJSVtbTAsICUlbW0zXG5cdCIg
LyogbW0zID0geHh4eHh4eHh4aGltdWwxMiAqLwogICAgICAgICJwdW5wY2toZHEgICAgICAgICUl
bW0wLCAlJW1tNFxuXHQiIC8qIG1tNCA9IHh4eHh4eHh4eGxvbXVsMTIgKi8KICAgICAgICAicHNs
bHEgICAgICQweDBjLCAgICAgICAgJSVtbTNcblx0IiAvKiBtbTMgPSB4eHh4eHhoaW11bDEyMDAw
ICovCiAgICAgICAgInBhZGRxICAgICAgICAgICAgJSVtbTQsICUlbW0zXG5cdCIgLyogbW0zID0g
eHh4eHh4c3VtbXVsX18xMiAqLwogICAgICAgICJtb3ZxICAgICAgICAgICAgICUlbW0zLCAgICAl
MFxuXHQiIC8qIGFjY3VtID0gbW0zICovCiAgICAgICAgImVtbXMgICAgICAgICAgICAgICAgICAg
ICAgICAgXG5cdCIKICAgICAgICA6ICI9bSIoYWNjdW0pIDogInIiKHN0YXRlKSwgInIiKGNvZWZm
cykKICAgICk7CgogICAgcmV0dXJuIGFjY3VtOwp9CgpzdGF0aWMgaW50NjRfdCBtbHBfZG90cHJv
ZHVjdF9zc2UyXzQoaW50MzJfdCAqc3RhdGUsIGludDMyX3QgKmNvZWZmcykKewogICAgaW50NjRf
dCBhY2N1bSA9IDA7CgogICAgX19hc21fXyB2b2xhdGlsZSgKICAgICAgICAibW92ZHFhICJNQU5H
TEUoeG1tbWFzaykiLCAlJXhtbTZcblx0IiAvKiB4bW02ID0gMDAwMDBmZmYwMDAwMGZmZjAwMDAw
ZmZmMDAwMDBmZmYgKi8KICAgICAgICAibW92ZHFhICAgICAgICAgICAgICAoJTIpLCAlJXhtbTdc
blx0IiAvKiB4bW03ID0gY2NjY2NjYzFjY2NjY2NjMmNjY2NjY2MzY2NjY2NjYzQgKi8KICAgICAg
ICAicGFja3NzZHcgICAgICAgICAgJSV4bW03LCAlJXhtbTdcblx0IiAvKiB4bW03ID0gY2NjMWNj
YzJjY2MzY2NjNGNjYzFjY2MyY2NjM2NjYzQgKi8KICAgICAgICAibW92ZHF1ICAgICAgICAgICAg
ICAoJTEpLCAlJXhtbTBcblx0IiAvKiB4bW0wID0geHhzc3NzczF4eHNzc3NzMnh4c3Nzc3MzeHhz
c3NzczQgKi8KICAgICAgICAibW92ZHFhICAgICAgICAgICAgJSV4bW0wLCAlJXhtbTFcblx0IiAv
KiB4bW0xID0geHhzc3NzczF4eHNzc3NzMnh4c3Nzc3MzeHhzc3NzczQgKi8KICAgICAgICAicHNy
YWQgICAgICQweDBjLCAgICAgICAgICAlJXhtbTBcblx0IiAvKiB4bW0wID0geHh4eHhzczF4eHh4
eHNzMnh4eHh4c3MzeHh4eHhzczQgKi8gLyogaGlnaCAxIDIgMyA0ICovCiAgICAgICAgInBhbmQg
ICAgICAgICAgICAgICUleG1tNiwgJSV4bW0xXG5cdCIgLyogeG1tMSA9IDAwMDAwc3MxMDAwMDBz
czIwMDAwMHNzMzAwMDAwc3M0ICovIC8qIGxvdyAgMSAyIDMgNCAqLwogICAgICAgICJwYWNrc3Nk
dyAgICAgICAgICAlJXhtbTEsICUleG1tMFxuXHQiIC8qIHhtbTAgPSB4c3MxeHNzMnhzczN4c3M0
MHNzMTBzczIwc3MzMHNzNCAqLyAvKiBoaWdoIDEgMiAzIDQgbG93IDEgMiAzIDQgKi8KICAgICAg
ICAicG1hZGR3ZCAgICAgICAgICAgJSV4bW0wLCAlJXhtbTdcblx0IiAvKiB4bW03ID0gYzEqaDEr
YzIqaDIsYzMqaDMrYzQqaDQsYzEqbDErYzIqbDIsYzMqbDMrYzQqbDQgKi8KICAgICAgICAibW92
ZHFhICAgICAgICAgICAgJSV4bW03LCAlJXhtbTBcblx0IiAvKiB4bW0wID0gYzEqaDErYzIqaDIs
YzMqaDMrYzQqaDQsYzEqbDErYzIqbDIsYzMqbDMrYzQqbDQgKi8KICAgICAgICAibW92ZHFhICAg
ICAgICAgICAgJSV4bW03LCAlJXhtbTNcblx0IiAvKiB4bW0zID0gYzEqaDErYzIqaDIsYzMqaDMr
YzQqaDQsYzEqbDErYzIqbDIsYzMqbDMrYzQqbDQgKi8KICAgICAgICAicHNyYWQgICAgICQweDFm
LCAgICAgICAgICAlJXhtbTdcblx0IiAvKiB4bW03ID0gc2lnbiBleHRlbmQgeG1tMCAqLwogICAg
ICAgICJwdW5wY2tsZHEgICAgICAgICAlJXhtbTcsICUleG1tM1xuXHQiIC8qIHhtbTMgPSBzeCBj
MSpsMStjMipsMixzeCBjMypsMytjNCpsNCAqLwogICAgICAgICJwdW5wY2toZHEgICAgICAgICAl
JXhtbTcsICUleG1tMFxuXHQiIC8qIHhtbTAgPSBzeCBjMSpoMStjMipoMixzeCBjMypoMytjNCpo
NCAqLwogICAgICAgICJwc2xscSAgICAgJDB4MGMsICAgICAgICAgICUleG1tM1xuXHQiIC8qIHht
bTMgPSBzeCBjMSpoMStjMipoMiA8PCAxMixzeCBjMypoMytjNCpoNCA8PCAxMiAqLwogICAgICAg
ICJwYWRkcSAgICAgICAgICAgICAlJXhtbTMsICUleG1tMFxuXHQiIC8qIHhtbTAgPSBjMSpzMStj
MipzMixjMypzMytjNCpzNCAqLwogICAgICAgICJtb3ZobHBzICAgICAgICAgICAlJXhtbTAsICUl
eG1tN1xuXHQiCiAgICAgICAgInBhZGRxICAgICAgICAgICAgICUleG1tNywgJSV4bW0wXG5cdCIK
ICAgICAgICAibW92cSAgICAgICAgICAgICAgJSV4bW0wLCAgICAgJTBcblx0IgogICAgICAgIDog
Ij1tIihhY2N1bSkgOiAiciIoc3RhdGUpLCAiciIoY29lZmZzKQogICAgKTsKCiAgICByZXR1cm4g
YWNjdW07Cn0KCnN0YXRpYyBpbnQ2NF90IG1scF9kb3Rwcm9kdWN0X3NzZTJfOChpbnQzMl90ICpz
dGF0ZSwgaW50MzJfdCAqY29lZmZzKQp7CiAgICBpbnQ2NF90IGFjY3VtID0gMDsKCiAgICBfX2Fz
bV9fIHZvbGF0aWxlKAogICAgICAgICJtb3ZkcWEgIk1BTkdMRSh4bW1tYXNrKSIsICUleG1tNlxu
XHQiIC8qIHhtbTYgPSAwMDAwMGZmZjAwMDAwZmZmMDAwMDBmZmYwMDAwMGZmZiAqLwogICAgICAg
ICJtb3ZkcWEgICAgICAgICAgICAgICglMiksICUleG1tN1xuXHQiIC8qIHhtbTcgPSBjY2NjY2Nj
MWNjY2NjY2MyY2NjY2NjYzNjY2NjY2NjNCAqLwogICAgICAgICJtb3ZkcWEgICAgICAgICAgICAx
NiglMiksICUleG1tNVxuXHQiIC8qIHhtbTUgPSBjY2NjY2NjNWNjY2NjY2M2Y2NjY2NjYzdjY2Nj
Y2NjOCAqLwogICAgICAgICJwYWNrc3NkdyAgICAgICAgICAlJXhtbTUsICUleG1tN1xuXHQiIC8q
IHhtbTcgPSBjY2MxY2NjMmNjYzNjY2M0Y2NjNWNjYzZjY2M3Y2NjOCAqLwogICAgICAgICJtb3Zk
cXUgICAgICAgICAgICAgICglMSksICUleG1tMFxuXHQiIC8qIHhtbTAgPSB4eHNzc3NzMXh4c3Nz
c3MyeHhzc3NzczN4eHNzc3NzNCAqLwogICAgICAgICJtb3ZkcWEgICAgICAgICAgICAlJXhtbTAs
ICUleG1tMVxuXHQiIC8qIHhtbTEgPSB4eHNzc3NzMXh4c3Nzc3MyeHhzc3NzczN4eHNzc3NzNCAq
LwogICAgICAgICJwc3JhZCAgICAgICQweDBjLCAgICAgICAgICUleG1tMFxuXHQiIC8qIHhtbTAg
PSB4eHh4eHNzMXh4eHh4c3MyeHh4eHhzczN4eHh4eHNzNCAqLyAvKiBoaWdoIDEgMiAzIDQgKi8K
ICAgICAgICAicGFuZCAgICAgICAgICAgICAgJSV4bW02LCAlJXhtbTFcblx0IiAvKiB4bW0xID0g
MDAwMDBzczEwMDAwMHNzMjAwMDAwc3MzMDAwMDBzczQgKi8gLyogbG93ICAxIDIgMyA0ICovCiAg
ICAgICAgIm1vdmRxdSAgICAgICAgICAgIDE2KCUxKSwgJSV4bW0yXG5cdCIgLyogeG1tMiA9IHh4
c3Nzc3M1eHhzc3NzczZ4eHNzc3NzN3h4c3Nzc3M4ICovCiAgICAgICAgIm1vdmRxYSAgICAgICAg
ICAgICUleG1tMiwgJSV4bW0zXG5cdCIgLyogeG1tMyA9IHh4c3Nzc3M1eHhzc3NzczZ4eHNzc3Nz
N3h4c3Nzc3M4ICovCiAgICAgICAgInBzcmFkICAgICAgJDB4MGMsICAgICAgICAgJSV4bW0yXG5c
dCIgLyogeG1tMiA9IHh4eHh4c3M1eHh4eHhzczZ4eHh4eHNzN3h4eHh4c3M4ICovIC8qIGhpZ2gg
NSA2IDcgOCAqLwogICAgICAgICJwYW5kICAgICAgICAgICAgICAlJXhtbTYsICUleG1tM1xuXHQi
IC8qIHhtbTMgPSAwMDAwMHNzNTAwMDAwc3M2MDAwMDBzczcwMDAwMHNzOCAqLyAvKiBsb3cgIDUg
NiA3IDggKi8KICAgICAgICAicGFja3NzZHcgICAgICAgICAgJSV4bW0yLCAlJXhtbTBcblx0IiAv
KiB4bW0wID0geHNzMXhzczJ4c3MzeHNzNHhzczV4c3M2eHNzN3hzczggKi8gLyogaGlnaCAxIDIg
MyA0IDUgNiA3IDggKi8KICAgICAgICAicGFja3NzZHcgICAgICAgICAgJSV4bW0zLCAlJXhtbTFc
blx0IiAvKiB4bW0xID0gMHNzMTBzczIwc3MzMHNzNDBzczUwc3M2MHNzNzBzczggKi8gLyogbG93
ICAxIDIgMyA0IDUgNiA3IDggKi8KICAgICAgICAicG1hZGR3ZCAgICAgICAgICAgJSV4bW03LCAl
JXhtbTBcblx0IiAvKiB4bW0wID0geGhpbXVsMTJ4aGltdWwzNHhoaW11bDU2eGhpbXVsNzggKi8g
LyogbXVsIGhpZ2ggMSAyIDMgNCA1IDYgNyA4ICovCiAgICAgICAgInBtYWRkd2QgICAgICAgICAg
ICUleG1tNywgJSV4bW0xXG5cdCIgLyogeG1tMSA9IHhsb211bDEyeGxvbXVsMzR4bG9tdWw1Nnhs
b211bDc4ICovIC8qIG11bCBsb3cgIDEgMiAzIDQgNSA2IDcgOCAqLwogICAgICAgICJtb3ZkcWEg
ICAgICAgICAgICAlJXhtbTAsICUleG1tMlxuXHQiIC8qIHhtbTIgPSB4aGltdWwxMnhoaW11bDM0
eGhpbXVsNTZ4aGltdWw3OCAqLyAvKiBjb3B5IGhpZ2ggbXVsICovCiAgICAgICAgIm1vdmRxYSAg
ICAgICAgICAgICUleG1tMCwgJSV4bW00XG5cdCIgLyogeG1tNCA9IHhoaW11bDEyeGhpbXVsMzR4
aGltdWw1NnhoaW11bDc4ICovIC8qIGNvcHkgaGlnaCBtdWwgKi8KICAgICAgICAibW92ZHFhICAg
ICAgICAgICAgJSV4bW0xLCAlJXhtbTNcblx0IiAvKiB4bW0zID0geGxvbXVsMTJ4bG9tdWwzNHhs
b211bDU2eGxvbXVsNzggKi8gLyogY29weSBsb3cgIG11bCAqLwogICAgICAgICJtb3ZkcWEgICAg
ICAgICAgICAlJXhtbTEsICUleG1tNVxuXHQiIC8qIHhtbTUgPSB4bG9tdWwxMnhsb211bDM0eGxv
bXVsNTZ4bG9tdWw3OCAqLyAvKiBjb3B5IGxvdyAgbXVsICovCiAgICAgICAgInBzcmFkICAgICAg
JDB4MWYsICAgICAgICAgJSV4bW0wXG5cdCIgLyogeG1tMCA9IHh4eHh4eHgxeHh4eHh4eDJ4eHh4
eHh4M3h4eHh4eHg0ICovIC8qIHN4IGhpZ2ggKi8KICAgICAgICAicHNyYWQgICAgICAkMHgxZiwg
ICAgICAgICAlJXhtbTFcblx0IiAvKiB4bW0xID0geHh4eHh4eDV4eHh4eHh4Nnh4eHh4eHg3eHh4
eHh4eDggKi8gLyogc3ggbG93ICAqLwogICAgICAgICJwdW5wY2toZHEgICAgICAgICAlJXhtbTAs
ICUleG1tMlxuXHQiIC8qIHhtbTIgPSB4eHh4eHh4eHhoaW11bDEyeHh4eHh4eHh4aGltdWwzNCAq
LyAvKiB1bnBhY2sgaGlnaCAxNi0+MzIgKi8KICAgICAgICAicHVucGNraGRxICAgICAgICAgJSV4
bW0xLCAlJXhtbTNcblx0IiAvKiB4bW0zID0geHh4eHh4eHh4bG9tdWwxMnh4eHh4eHh4eGxvbXVs
MzQgKi8gLyogdW5wYWNrIGxvdyAgMTYtPjMyICovCiAgICAgICAgInBzbGxxICAgICAgJDB4MGMs
ICAgICAgICAgJSV4bW0yXG5cdCIgLyogeG1tMiA9IHh4eHh4eGhpbXVsMTIwMDB4eHh4eHhoaW11
bDM0MDAwICovIC8qIGhpZ2ggPDw9IDEyICovCiAgICAgICAgInBhZGRxICAgICAgICAgICAgICUl
eG1tMiwgJSV4bW0zXG5cdCIgLyogeG1tMyA9IHh4eHh4eHN1bW11bF9fMTJ4eHh4eHhzdW1tdWxf
XzM0ICovCiAgICAgICAgInB1bnBja2xkcSAgICAgICAgICUleG1tMCwgJSV4bW00XG5cdCIgLyog
eG1tNCA9IHh4eHh4eHh4eGhpbXVsNTZ4eHh4eHh4eHhoaW11bDc4ICovCiAgICAgICAgInB1bnBj
a2xkcSAgICAgICAgICUleG1tMSwgJSV4bW01XG5cdCIgLyogeG1tNSA9IHh4eHh4eHh4eGxvbXVs
NTZ4eHh4eHh4eHhsb211bDc4ICovCiAgICAgICAgInBzbGxxICAgICAgJDB4MGMsICAgICAgICAg
JSV4bW00XG5cdCIgLyogeG1tNCA9IHh4eHh4eGhpbXVsNTYwMDB4eHh4eHhoaW11bDc4MDAwICov
CiAgICAgICAgInBhZGRxICAgICAgICAgICAgICUleG1tNCwgJSV4bW01XG5cdCIgLyogeG1tNSA9
IHh4eHh4eHN1bW11bF9fNTZ4eHh4eHhzdW1tdWxfXzc4ICovCiAgICAgICAgInBhZGRxICAgICAg
ICAgICAgICUleG1tNSwgJSV4bW0zXG5cdCIgLyogeG1tMyA9IHh4eHh4eHN1bW11bDEyNTZ4eHh4
eHhzdW1tdWwzNDc4ICovCiAgICAgICAgIm1vdmhscHMgICAgICAgICAgICUleG1tMywgJSV4bW00
XG5cdCIgLyogeG1tNCA9ID8/Pz8/Pz8/Pz8/Pz8/Pz94eHh4eHhzdW1tdWwxMjU2ICovCiAgICAg
ICAgInBhZGRxICAgICAgICAgICAgICUleG1tNCwgJSV4bW0zXG5cdCIgLyogeG1tMyA9ID8/Pz8/
Pz8/Pz8/Pz8/Pz94eHh4eHhzdW1tdWwxMjM0NTY3OCovCiAgICAgICAgIm1vdnEgICAgICAgICAg
ICAgICUleG1tMywgICAgICUwXG5cdCIKICAgICAgICA6ICI9bSIoYWNjdW0pIDogInIiKHN0YXRl
KSwgInIiKGNvZWZmcykKICAgICk7CgogICAgcmV0dXJuIGFjY3VtOwp9Cg==
--0015175cb2ec5b6d230468070524
Content-Type: text/x-csrc; charset=US-ASCII; name="mlpdsp_sse4.c"
Content-Disposition: attachment; filename="mlpdsp_sse4.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ftry4uld2

c3RhdGljIGludDY0X3QgbWxwX2RvdHByb2R1Y3Rfc3NlNF8yKGludDMyX3QgKnN0YXRlLCBpbnQz
Ml90ICpjb2VmZnMpCnsKICAgIGludDY0X3QgYWNjdW0gPSAwOwoKICAgIF9fYXNtX18gdm9sYXRp
bGUoCiAgICAgICAgIm1vdnEgICAgICAgICAgICAoJTEpLCAlJXhtbTFcblx0IiAvKiB4bW0xID0g
czFzMjAwMDAgKi8KICAgICAgICAicHNodWZkICQweDE0LCAgICglMiksICUleG1tMlxuXHQiIC8q
IHhtbTIgPSBjMWMyYzJjMSAqLwogICAgICAgICJwc2h1ZmQgJDB4MTQsICUleG1tMSwgJSV4bW00
XG5cdCIgLyogeG1tNCA9IHMxczJzMnMxICovCiAgICAgICAgInBtdWxkcSAgICAgICAgJSV4bW00
LCAlJXhtbTJcblx0IiAvKiB4bW0yID0gczEqYzEsczIqYzIgKi8KICAgICAgICAibW92aGxwcyAg
ICAgICAlJXhtbTIsICUleG1tN1xuXHQiIC8qIHhtbTcgPSBzMSpjMSxzMSpjMSAqLwogICAgICAg
ICJwYWRkcSAgICAgICAgICUleG1tNywgJSV4bW0yXG5cdCIgLyogeG1tMiA9IChkb24ndCBjYXJl
KSxzMSpjMStzMipjMiAqLwogICAgICAgICJtb3ZxICAgICAgICAgICUleG1tMiwgICAgICUwXG5c
dCIKICAgICAgICA6ICI9bSIoYWNjdW0pIDogInIiKHN0YXRlKSwgInIiKGNvZWZmcykKICAgICk7
CgogICAgcmV0dXJuIGFjY3VtOwp9CgpzdGF0aWMgaW50NjRfdCBtbHBfZG90cHJvZHVjdF9zc2U0
XzQoaW50MzJfdCAqc3RhdGUsIGludDMyX3QgKmNvZWZmcykKewogICAgaW50NjRfdCBhY2N1bSA9
IDA7CgogICAgX19hc21fXyB2b2xhdGlsZSgKICAgICAgICAibW92ZHFhICAgICAgICAgICglMiks
ICUleG1tMFxuXHQiIC8qIHhtbTAgPSBjMWMyYzNjNCAqLwogICAgICAgICJtb3ZkcXUgICAgICAg
ICAgKCUxKSwgJSV4bW0xXG5cdCIgLyogeG1tMSA9IHMxczJzM3M0ICovCiAgICAgICAgInBzaHVm
ZCAkMHgxNCwgJSV4bW0wLCAlJXhtbTJcblx0IiAvKiB4bW0yID0gYzFjMmMyYzEgKi8KICAgICAg
ICAicHNodWZkICQweGJlLCAlJXhtbTAsICUleG1tM1xuXHQiIC8qIHhtbTMgPSBjM2M0YzRjMyAq
LwogICAgICAgICJwc2h1ZmQgJDB4MTQsICUleG1tMSwgJSV4bW00XG5cdCIgLyogeG1tNCA9IHMx
czJzMnMxICovCiAgICAgICAgInBzaHVmZCAkMHhiZSwgJSV4bW0xLCAlJXhtbTVcblx0IiAvKiB4
bW01ID0gczNzNHM0czMgKi8KICAgICAgICAicG11bGRxICAgICAgICAlJXhtbTQsICUleG1tMlxu
XHQiIC8qIHhtbTIgPSBzMSpjMSxzMipjMiAqLwogICAgICAgICJwbXVsZHEgICAgICAgICUleG1t
NSwgJSV4bW0zXG5cdCIgLyogeG1tMyA9IHMzKmMzLHM0KmM0ICovCiAgICAgICAgInBhZGRxICAg
ICAgICAgJSV4bW0zLCAlJXhtbTJcblx0IiAvKiB4bW0yID0gczEqYzErczMqYzMsczIqYzIrczQq
YzQgKi8KICAgICAgICAibW92aGxwcyAgICAgICAlJXhtbTIsICUleG1tN1xuXHQiIC8qIHhtbTcg
PSBzMSpjMStzMypjMyxzMSpjMStzMypjMyAqLwogICAgICAgICJwYWRkcSAgICAgICAgICUleG1t
NywgJSV4bW0yXG5cdCIgLyogeG1tMiA9IChkb24ndCBjYXJlKSxzMSpjMStzMypjMytzMipjMitz
NCpjNCAqLwogICAgICAgICJtb3ZxICAgICAgICAgICUleG1tMiwgICAgICUwXG5cdCIKICAgICAg
ICA6ICI9bSIoYWNjdW0pIDogInIiKHN0YXRlKSwgInIiKGNvZWZmcykKICAgICk7CgogICAgcmV0
dXJuIGFjY3VtOwp9CgpzdGF0aWMgaW50NjRfdCBtbHBfZG90cHJvZHVjdF9zc2U0XzYoaW50MzJf
dCAqc3RhdGUsIGludDMyX3QgKmNvZWZmcykKewogICAgaW50NjRfdCBhY2N1bSA9IDA7CgogICAg
X19hc21fXyB2b2xhdGlsZSgKICAgICAgICAibW92ZHFhICAgICAgICAgICglMiksICUleG1tMFxu
XHQiIC8qIHhtbTAgPSBjMWMyYzNjNCAqLwogICAgICAgICJtb3ZkcXUgICAgICAgICAgKCUxKSwg
JSV4bW0xXG5cdCIgLyogeG1tMSA9IHMxczJzM3M0ICovCiAgICAgICAgInBzaHVmZCAkMHgxNCwg
JSV4bW0wLCAlJXhtbTJcblx0IiAvKiB4bW0yID0gYzFjMmMyYzEgKi8KICAgICAgICAicHNodWZk
ICQweGJlLCAlJXhtbTAsICUleG1tM1xuXHQiIC8qIHhtbTMgPSBjM2M0YzRjMyAqLwogICAgICAg
ICJwc2h1ZmQgJDB4MTQsICUleG1tMSwgJSV4bW00XG5cdCIgLyogeG1tNCA9IHMxczJzMnMxICov
CiAgICAgICAgInBzaHVmZCAkMHhiZSwgJSV4bW0xLCAlJXhtbTVcblx0IiAvKiB4bW01ID0gczNz
NHM0czMgKi8KICAgICAgICAicG11bGRxICAgICAgICAlJXhtbTQsICUleG1tMlxuXHQiIC8qIHht
bTIgPSBzMSpjMSxzMipjMiAqLwogICAgICAgICJwbXVsZHEgICAgICAgICUleG1tNSwgJSV4bW0z
XG5cdCIgLyogeG1tMyA9IHMzKmMzLHM0KmM0ICovCiAgICAgICAgInBhZGRxICAgICAgICAgJSV4
bW0zLCAlJXhtbTJcblx0IiAvKiB4bW0yID0gczEqYzErczMqYzMsczIqYzIrczQqYzQgKi8KICAg
ICAgICAibW92cSAgICAgICAgICAxNiglMSksICUleG1tMVxuXHQiIC8qIHhtbTEgPSBzNXM2MDAw
MCAqLwogICAgICAgICJwc2h1ZmQgJDB4MTQsIDE2KCUyKSwgJSV4bW02XG5cdCIgLyogeG1tNiA9
IGM1YzZjNmM1ICovCiAgICAgICAgInBzaHVmZCAkMHgxNCwgJSV4bW0xLCAlJXhtbTRcblx0IiAv
KiB4bW00ID0gczVzNnM2czUgKi8KICAgICAgICAicG11bGRxICAgICAgICAlJXhtbTQsICUleG1t
NlxuXHQiIC8qIHhtbTYgPSBzNSpjNSxzNipjNiAqLwogICAgICAgICJwYWRkcSAgICAgICAgICUl
eG1tNiwgJSV4bW0yXG5cdCIgLyogeG1tMiA9IHMxKmMxK3MzKmMzK3M1KmM1LHMyKmMyK3M0KmM0
K3M2KmM2ICovCiAgICAgICAgIm1vdmhscHMgICAgICAgJSV4bW0yLCAlJXhtbTdcblx0IiAvKiB4
bW03ID0gczEqYzErczMqYzMrczUqYzUsczEqYzErczMqYzMrczUqYzUgKi8KICAgICAgICAicGFk
ZHEgICAgICAgICAlJXhtbTcsICUleG1tMlxuXHQiIC8qIHhtbTIgPSAoZG9uJ3QgY2FyZSksczEq
YzErczMqYzMrczUqYzUrczIqYzIrczQqYzQrczYqYzYgKi8KICAgICAgICAibW92cSAgICAgICAg
ICAlJXhtbTIsICAgICAlMFxuXHQiCiAgICAgICAgOiAiPW0iKGFjY3VtKSA6ICJyIihzdGF0ZSks
ICJyIihjb2VmZnMpCiAgICApOwoKICAgIHJldHVybiBhY2N1bTsKfQoKc3RhdGljIGludDY0X3Qg
bWxwX2RvdHByb2R1Y3Rfc3NlNF84KGludDMyX3QgKnN0YXRlLCBpbnQzMl90ICpjb2VmZnMpCnsK
ICAgIGludDY0X3QgYWNjdW0gPSAwOwoKICAgIF9fYXNtX18gdm9sYXRpbGUoCiAgICAgICAgIm1v
dmRxYSAgICAgICAgICAoJTIpLCAlJXhtbTBcblx0IiAvKiB4bW0wID0gYzFjMmMzYzQgKi8KICAg
ICAgICAibW92ZHF1ICAgICAgICAgICglMSksICUleG1tMVxuXHQiIC8qIHhtbTEgPSBzMXMyczNz
NCAqLwogICAgICAgICJwc2h1ZmQgJDB4MTQsICUleG1tMCwgJSV4bW0yXG5cdCIgLyogeG1tMiA9
IGMxYzJjMmMxICovCiAgICAgICAgInBzaHVmZCAkMHhiZSwgJSV4bW0wLCAlJXhtbTNcblx0IiAv
KiB4bW0zID0gYzNjNGM0YzMgKi8KICAgICAgICAicHNodWZkICQweDE0LCAlJXhtbTEsICUleG1t
NFxuXHQiIC8qIHhtbTQgPSBzMXMyczJzMSAqLwogICAgICAgICJwc2h1ZmQgJDB4YmUsICUleG1t
MSwgJSV4bW01XG5cdCIgLyogeG1tNSA9IHMzczRzNHMzICovCiAgICAgICAgInBtdWxkcSAgICAg
ICAgJSV4bW00LCAlJXhtbTJcblx0IiAvKiB4bW0yID0gczEqYzEsczIqYzIgKi8KICAgICAgICAi
cG11bGRxICAgICAgICAlJXhtbTUsICUleG1tM1xuXHQiIC8qIHhtbTMgPSBzMypjMyxzNCpjNCAq
LwogICAgICAgICJwYWRkcSAgICAgICAgICUleG1tMywgJSV4bW0yXG5cdCIgLyogeG1tMiA9IHMx
KmMxK3MzKmMzLHMyKmMyK3M0KmM0ICovCiAgICAgICAgIm1vdmRxYSAgICAgICAgMTYoJTIpLCAl
JXhtbTBcblx0IiAvKiB4bW0wID0gYzVjNmM3YzggKi8KICAgICAgICAibW92ZHF1ICAgICAgICAx
NiglMSksICUleG1tMVxuXHQiIC8qIHhtbTEgPSBzNXM2czdzOCAqLwogICAgICAgICJwc2h1ZmQg
JDB4MTQsICUleG1tMCwgJSV4bW02XG5cdCIgLyogeG1tNiA9IGM1YzZjNmM1ICovCiAgICAgICAg
InBzaHVmZCAkMHhiZSwgJSV4bW0wLCAlJXhtbTNcblx0IiAvKiB4bW0zID0gYzdjOGM4YzcgKi8K
ICAgICAgICAicHNodWZkICQweDE0LCAlJXhtbTEsICUleG1tNFxuXHQiIC8qIHhtbTQgPSBzNXM2
czZzNSAqLwogICAgICAgICJwc2h1ZmQgJDB4YmUsICUleG1tMSwgJSV4bW01XG5cdCIgLyogeG1t
NSA9IHM3czhzOHM3ICovCiAgICAgICAgInBtdWxkcSAgICAgICAgJSV4bW00LCAlJXhtbTZcblx0
IiAvKiB4bW02ID0gczUqYzUsczYqYzYgKi8KICAgICAgICAicG11bGRxICAgICAgICAlJXhtbTUs
ICUleG1tM1xuXHQiIC8qIHhtbTMgPSBzNypjNyxzOCpjOCAqLwogICAgICAgICJwYWRkcSAgICAg
ICAgICUleG1tMywgJSV4bW02XG5cdCIgLyogeG1tNiA9IHM1KmM1K3M3KmM3LHM2KmM2K3M4KmM4
ICovCiAgICAgICAgInBhZGRxICAgICAgICAgJSV4bW02LCAlJXhtbTJcblx0IiAvKiB4bW0yID0g
czEqYzErczMqYzMrczUqYzUrczcqYzcsczIqYzIrczQqYzQrczYqYzYrczgqYzggKi8KICAgICAg
ICAibW92aGxwcyAgICAgICAlJXhtbTIsICUleG1tN1xuXHQiIC8qIHhtbTcgPSBzMSpjMStzMypj
MytzNSpjNStzNypjNyxzMSpjMStzMypjMytzNSpjNStzNypjNyAqLwogICAgICAgICJwYWRkcSAg
ICAgICAgICUleG1tNywgJSV4bW0yXG5cdCIgLyogeG1tMiA9IChkb24ndCBjYXJlKSxzMSpjMStz
MypjMytzNSpjNStzNypjNytzMipjMitzNCpjNCtzNipjNitzOCpjOCAqLwogICAgICAgICJtb3Zx
ICAgICAgICAgICUleG1tMiwgICAgICUwXG5cdCIKICAgICAgICA6ICI9bSIoYWNjdW0pIDogInIi
KHN0YXRlKSwgInIiKGNvZWZmcykKICAgICk7CgogICAgcmV0dXJuIGFjY3VtOwp9Cg==
--0015175cb2ec5b6d230468070524
Content-Type: text/x-csrc; charset=US-ASCII; name="mlpdsp_altivec.c"
Content-Disposition: attachment; filename="mlpdsp_altivec.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ftry4z143

c3RhdGljIGludDY0X3QgbWxwX2RvdHByb2R1Y3RfYWx0aXZlY180KGNvbnN0IGludDMyX3QgKnN0
YXRlLCBjb25zdCBpbnQzMl90ICpjb2VmZnMpCnsKICAgIHJlZ2lzdGVyIHZlY3RvciB1bnNpZ25l
ZCBpbnQgdHdlbHZlID0gdmVjX3NwbGF0X3UzMigxMik7CiAgICByZWdpc3RlciB2ZWN0b3Igc2ln
bmVkIGludCBtYXNrID0geyAweGZmZiwgMHhmZmYsIDB4ZmZmLCAweGZmZiB9OwogICAgcmVnaXN0
ZXIgdmVjdG9yIHNpZ25lZCBpbnQgemVybyA9IHZlY19zcGxhdF9zMzIoMCk7CiAgICByZWdpc3Rl
ciB2ZWN0b3Igc2lnbmVkIHNob3J0IHZjb2VmZnM7CiAgICByZWdpc3RlciB2ZWN0b3Igc2lnbmVk
IHNob3J0IHZzdGF0ZXBrOwogICAgcmVnaXN0ZXIgdmVjdG9yIHNpZ25lZCBpbnQgc3RhdGUwLCBj
b2VmZjA7CiAgICByZWdpc3RlciB2ZWN0b3Igc2lnbmVkIGludCB2cmVzOwogICAgcmVnaXN0ZXIg
dmVjdG9yIHNpZ25lZCBpbnQgcGFydDAsIHBhcnQxOwogICAgcmVnaXN0ZXIgdmVjdG9yIHVuc2ln
bmVkIGNoYXIgcGVybW1hc2s7CiAgICBpbnQzMl90IGhpaW50LCBsb2ludDsKICAgIGludDY0X3Qg
YWNjdW07CgogICAgcGFydDAgICAgPSB2ZWNfbGQgICggMCwgc3RhdGUgICk7CiAgICBwYXJ0MSAg
ICA9IHZlY19sZCAgKCAwLCBzdGF0ZSs0KTsKICAgIHBlcm1tYXNrID0gdmVjX2x2c2woIDAsIHN0
YXRlICApOwogICAgc3RhdGUwICAgPSB2ZWNfcGVybShwYXJ0MCwgcGFydDEsIHBlcm1tYXNrKTsK
ICAgIGNvZWZmMCAgID0gdmVjX2xkICAoIDAsIGNvZWZmcyApOwoKICAgIHZjb2VmZnMgID0gdmVj
X3BhY2soY29lZmYwLCBjb2VmZjApOwogICAgdnN0YXRlcGsgPSB2ZWNfcGFjayh2ZWNfYW5kKHN0
YXRlMCwgbWFzayksIHZlY19zcihzdGF0ZTAsIHR3ZWx2ZSkpOwogICAgdnJlcyAgICAgPSB2ZWNf
c3VtMnModmVjX21zdW0odmNvZWZmcywgdnN0YXRlcGssIHplcm8pLCB6ZXJvKTsKICAgIHZlY19z
dGUodmVjX3NwbGF0KHZyZXMsIDMpLCAwLCAmaGlpbnQpOwogICAgdmVjX3N0ZSh2ZWNfc3BsYXQo
dnJlcywgMSksIDAsICZsb2ludCk7CgogICAgYWNjdW0gPSAoaW50NjRfdCkgKChpbnQ2NF90KSBo
aWludCA8PCAxMikgKyBsb2ludDsKCiAgICByZXR1cm4gYWNjdW07Cn0KCnN0YXRpYyBpbnQ2NF90
IG1scF9kb3Rwcm9kdWN0X2FsdGl2ZWNfOChjb25zdCBpbnQzMl90ICpzdGF0ZSwgY29uc3QgaW50
MzJfdCAqY29lZmZzKQp7CiAgICByZWdpc3RlciB2ZWN0b3IgdW5zaWduZWQgaW50IHR3ZWx2ZSA9
IHZlY19zcGxhdF91MzIoMTIpOwogICAgcmVnaXN0ZXIgdmVjdG9yIHNpZ25lZCBzaG9ydCBtYXNr
ID0geyAweGZmZiwgMHhmZmYsIDB4ZmZmLCAweGZmZiwgMHhmZmYsIDB4ZmZmLCAweGZmZiwgMHhm
ZmYgfTsKICAgIHJlZ2lzdGVyIHZlY3RvciBzaWduZWQgaW50IHplcm8gPSB2ZWNfc3BsYXRfczMy
KDApOwogICAgcmVnaXN0ZXIgdmVjdG9yIHNpZ25lZCBzaG9ydCB2Y29lZmZzOwogICAgcmVnaXN0
ZXIgdmVjdG9yIHNpZ25lZCBzaG9ydCB2c3RhdGVoaSwgdnN0YXRlbG87CiAgICByZWdpc3RlciB2
ZWN0b3Igc2lnbmVkIGludCBzdGF0ZTAsIHN0YXRlMTsKICAgIHJlZ2lzdGVyIGNvbnN0IHZlY3Rv
ciBzaWduZWQgaW50ICpwdmNvZWZmcyA9IChjb25zdCB2ZWN0b3Igc2lnbmVkIGludCopIGNvZWZm
czsKICAgIHJlZ2lzdGVyIHZlY3RvciBzaWduZWQgaW50IHBhcnQwLCBwYXJ0MSwgcGFydDI7CiAg
ICByZWdpc3RlciB2ZWN0b3IgdW5zaWduZWQgY2hhciBwZXJtbWFzazsKICAgIGludDMyX3QgaGlp
bnQsIGxvaW50OwogICAgaW50NjRfdCBhY2N1bTsKCiAgICBwYXJ0MCAgICA9IHZlY19sZCAgKCAw
LCBzdGF0ZSAgKTsKICAgIHBhcnQxICAgID0gdmVjX2xkICAoIDAsIHN0YXRlKzQpOwogICAgcGFy
dDIgICAgPSB2ZWNfbGQgICggMCwgc3RhdGUrOCk7CiAgICBwZXJtbWFzayA9IHZlY19sdnNsKCAw
LCBzdGF0ZSAgKTsKICAgIHN0YXRlMCAgID0gdmVjX3Blcm0ocGFydDAsIHBhcnQxLCBwZXJtbWFz
ayk7CiAgICBzdGF0ZTEgICA9IHZlY19wZXJtKHBhcnQxLCBwYXJ0MiwgcGVybW1hc2spOwoKICAg
IHZjb2VmZnMgID0gdmVjX3BhY2socHZjb2VmZnNbMF0sIHB2Y29lZmZzWzFdKTsKICAgIHZzdGF0
ZWxvID0gdmVjX2FuZCAodmVjX3BhY2soc3RhdGUwLCBzdGF0ZTEpLCBtYXNrKTsKICAgIHZzdGF0
ZWhpID0gdmVjX3BhY2sodmVjX3NyKHN0YXRlMCwgdHdlbHZlKSwgdmVjX3NyKHN0YXRlMSwgdHdl
bHZlKSk7CiAgICB2ZWNfc3RlKHZlY19zcGxhdCh2ZWNfc3Vtcyh2ZWNfbXN1bSh2Y29lZmZzLCB2
c3RhdGVoaSwgemVybyksIHplcm8pLCAzKSwgMCwgJmhpaW50KTsKICAgIHZlY19zdGUodmVjX3Nw
bGF0KHZlY19zdW1zKHZlY19tc3VtKHZjb2VmZnMsIHZzdGF0ZWxvLCB6ZXJvKSwgemVybyksIDMp
LCAwLCAmbG9pbnQpOwoKICAgIGFjY3VtID0gKGludDY0X3QpICgoaW50NjRfdCkgaGlpbnQgPDwg
MTIpICsgbG9pbnQ7CgogICAgcmV0dXJuIGFjY3VtOwp9Cg==
--0015175cb2ec5b6d230468070524--



More information about the ffmpeg-devel mailing list