mirror of https://github.com/f4exb/sdrangel.git
IntHalfBandFilterEO2: fixed (x,y) method
This commit is contained in:
parent
bc3dfb19cd
commit
af0a0896d4
|
@ -571,6 +571,7 @@ protected:
|
||||||
qint32 qAcc = 0;
|
qint32 qAcc = 0;
|
||||||
|
|
||||||
#ifdef USE_SIMD
|
#ifdef USE_SIMD
|
||||||
|
//#warning "IntHalfbandFiler SIMD"
|
||||||
const __m128i* h = (const __m128i*) HBFIRFilterTraits<HBFilterOrder>::hbCoeffs;
|
const __m128i* h = (const __m128i*) HBFIRFilterTraits<HBFilterOrder>::hbCoeffs;
|
||||||
__m128i sumI = _mm_setzero_si128();
|
__m128i sumI = _mm_setzero_si128();
|
||||||
__m128i sumQ = _mm_setzero_si128();
|
__m128i sumQ = _mm_setzero_si128();
|
||||||
|
@ -584,7 +585,7 @@ protected:
|
||||||
sb = _mm_loadu_si128((__m128i*) &(m_evenB[0][b]));
|
sb = _mm_loadu_si128((__m128i*) &(m_evenB[0][b]));
|
||||||
sumI = _mm_add_epi32(sumI, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
sumI = _mm_add_epi32(sumI, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
||||||
|
|
||||||
sa = _mm_loadu_si128((__m128i*) &(m_evenB[1][a]));
|
sa = _mm_loadu_si128((__m128i*) &(m_evenA[1][a]));
|
||||||
sb = _mm_loadu_si128((__m128i*) &(m_evenB[1][b]));
|
sb = _mm_loadu_si128((__m128i*) &(m_evenB[1][b]));
|
||||||
sumQ = _mm_add_epi32(sumQ, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
sumQ = _mm_add_epi32(sumQ, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
||||||
}
|
}
|
||||||
|
@ -594,7 +595,7 @@ protected:
|
||||||
sb = _mm_loadu_si128((__m128i*) &(m_oddB[0][b]));
|
sb = _mm_loadu_si128((__m128i*) &(m_oddB[0][b]));
|
||||||
sumI = _mm_add_epi32(sumI, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
sumI = _mm_add_epi32(sumI, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
||||||
|
|
||||||
sa = _mm_loadu_si128((__m128i*) &(m_oddB[1][a]));
|
sa = _mm_loadu_si128((__m128i*) &(m_oddA[1][a]));
|
||||||
sb = _mm_loadu_si128((__m128i*) &(m_oddB[1][b]));
|
sb = _mm_loadu_si128((__m128i*) &(m_oddB[1][b]));
|
||||||
sumQ = _mm_add_epi32(sumQ, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
sumQ = _mm_add_epi32(sumQ, _mm_mullo_epi32(_mm_add_epi32(sa, sb), *h));
|
||||||
}
|
}
|
||||||
|
@ -631,6 +632,7 @@ protected:
|
||||||
b += 1;
|
b += 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((m_ptrB % 2) == 0)
|
if ((m_ptrB % 2) == 0)
|
||||||
{
|
{
|
||||||
iAcc += ((qint32)m_oddB[0][m_ptrB/2 + m_size/2]) << (HBFIRFilterTraits<HBFilterOrder>::hbShift - 1);
|
iAcc += ((qint32)m_oddB[0][m_ptrB/2 + m_size/2]) << (HBFIRFilterTraits<HBFilterOrder>::hbShift - 1);
|
||||||
|
|
Loading…
Reference in New Issue