Prtogramowanie c/ C++

Opis forum


#1 2012-01-03 21:27:05

bronek

Administrator

Zarejestrowany: 2012-01-03
Posty: 14
Punktów :   

MMX

uzupelnianie

Kod:

_mm_set1_pi8

dodawanie:

Kod:

__m64* vektor1;
__m64* vektor2;
                  for(int counter=0; counter<nNumberOfPixels; counter+=8)
                        {
                            vektor1 = (__m64*)&pSource[counter];
                            vektor2 = (__m64*)&pDest[counter];
                            *vektor2 =_mm_adds_pu8(*vektor1,nChange64);    
                        }
                  _mm_empty();

odejmowanie

Kod:

__m64* vektor1;
__m64* vektor2;
                        {
                            vektor1 = (__m64*)&pSource[counter];
                            vektor2 = (__m64*)&pDest[counter];
                            *vektor2 =_mm_subs_pu8(*vektor1,nChange64);    
                        }

porownywanie wartosci

Kod:

__m64* vektor1;
__m64* vektor2;

        {
            vektor1 = (__m64*)&pSource[counter];
            vektor2 = (__m64*)&pDest[counter];
            *vektor2 = _mm_cmpeq_pi8(_mm_subs_pu8(threshold64,*vektor1), zero64);
        }
        _mm_empty();

liczenie wartosci bezwzglednej

Kod:

            vektor1 = (__m64*)&pSource[counter];
            vektor2 = (__m64*)&pSource[counter+1+nWidth];
            vektor3 = (__m64*)&pSource[counter+1];
            vektor4 = (__m64*)&pSource[counter+nWidth];
            vektor5 = (__m64*)&pDest[counter];

            abs1 = _mm_or_si64(_mm_subs_pu8(*vektor1,*vektor2), _mm_subs_pu8(*vektor2,*vektor1));
            abs2 = _mm_or_si64(_mm_subs_pu8(*vektor3,*vektor4), _mm_subs_pu8(*vektor4,*vektor3));

            *vektor5 = _mm_adds_pu8(abs1, abs2);
        }
        _mm_empty();

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.nakacu.pun.pl www.ez20092010.pun.pl www.forumawf.pun.pl www.1101bwgrupaa.pun.pl www.poke-batles.pun.pl