bronek - 2012-01-03 21:27:05

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();
www.polaczki.pun.pl www.54dh.pun.pl www.reso3.pun.pl www.sniper.pun.pl www.clanstk.pun.pl