diff --git a/plugins/samplesource/airspy/airspythread.h b/plugins/samplesource/airspy/airspythread.h index b21c894d3..6abd2efd8 100644 --- a/plugins/samplesource/airspy/airspythread.h +++ b/plugins/samplesource/airspy/airspythread.h @@ -56,7 +56,7 @@ private: static AirspyThread *m_this; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators; + Decimators m_decimators; #else Decimators m_decimators; #endif diff --git a/plugins/samplesource/bladerfinput/bladerfinputthread.h b/plugins/samplesource/bladerfinput/bladerfinputthread.h index 8230c5c90..a6e0b29b0 100644 --- a/plugins/samplesource/bladerfinput/bladerfinputthread.h +++ b/plugins/samplesource/bladerfinput/bladerfinputthread.h @@ -52,7 +52,7 @@ private: int m_fcPos; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators; + Decimators m_decimators; #else Decimators m_decimators; #endif diff --git a/plugins/samplesource/hackrfinput/hackrfinputthread.h b/plugins/samplesource/hackrfinput/hackrfinputthread.h index 32df49077..6cb81d1b4 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputthread.h +++ b/plugins/samplesource/hackrfinput/hackrfinputthread.h @@ -55,7 +55,7 @@ private: int m_fcPos; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators; + Decimators m_decimators; #else Decimators m_decimators; #endif diff --git a/plugins/samplesource/limesdrinput/limesdrinputthread.h b/plugins/samplesource/limesdrinput/limesdrinputthread.h index 096083ac8..f7b645b94 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputthread.h +++ b/plugins/samplesource/limesdrinput/limesdrinputthread.h @@ -56,7 +56,7 @@ private: unsigned int m_log2Decim; // soft decimation #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators; + Decimators m_decimators; #else Decimators m_decimators; #endif diff --git a/plugins/samplesource/perseus/perseusthread.h b/plugins/samplesource/perseus/perseusthread.h index 46d75c649..0adfda1e8 100644 --- a/plugins/samplesource/perseus/perseusthread.h +++ b/plugins/samplesource/perseus/perseusthread.h @@ -52,8 +52,8 @@ private: unsigned int m_log2Decim; static PerseusThread *m_this; - Decimators, SDR_RX_SAMP_SZ, 24> m_decimators32; // for no decimation (accumulator is int32) - Decimators, SDR_RX_SAMP_SZ, 24> m_decimators64; // for actual decimation (accumulator is int64) + Decimators, SDR_RX_SAMP_SZ, 24> m_decimators32; // for no decimation (accumulator is int32) + Decimators, SDR_RX_SAMP_SZ, 24> m_decimators64; // for actual decimation (accumulator is int64) void run(); void callback(const uint8_t* buf, qint32 len); // inner call back diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputthread.h b/plugins/samplesource/plutosdrinput/plutosdrinputthread.h index e79630334..843175246 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputthread.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputthread.h @@ -60,7 +60,7 @@ private: float m_phasor; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators; + Decimators m_decimators; #else Decimators m_decimators; #endif diff --git a/plugins/samplesource/sdrplay/sdrplaythread.h b/plugins/samplesource/sdrplay/sdrplaythread.h index 807db699c..1317ae57f 100644 --- a/plugins/samplesource/sdrplay/sdrplaythread.h +++ b/plugins/samplesource/sdrplay/sdrplaythread.h @@ -53,7 +53,7 @@ private: int m_fcPos; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators; + Decimators m_decimators; #else Decimators m_decimators; #endif diff --git a/plugins/samplesource/testsource/testsourcethread.h b/plugins/samplesource/testsource/testsourcethread.h index dbfd508a2..db9e4d3c8 100644 --- a/plugins/samplesource/testsource/testsourcethread.h +++ b/plugins/samplesource/testsource/testsourcethread.h @@ -100,9 +100,9 @@ private: QMutex m_mutex; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimators_8; - Decimators m_decimators_12; - Decimators m_decimators_16; + Decimators m_decimators_8; + Decimators m_decimators_12; + Decimators m_decimators_16; #else Decimators m_decimators_8; Decimators m_decimators_12; diff --git a/sdrbase/dsp/inthalfbandfiltereo2.h b/sdrbase/dsp/inthalfbandfiltereo2.h index 15619d1eb..72bf760d4 100644 --- a/sdrbase/dsp/inthalfbandfiltereo2.h +++ b/sdrbase/dsp/inthalfbandfiltereo2.h @@ -563,12 +563,12 @@ public: advancePointer(); } - void myDecimate(qint64 x1, qint64 y1, qint64 *x2, qint64 *y2) + void myDecimate(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2) { - storeSample64(x1, y1); + storeSample32(x1, y1); advancePointer(); - storeSample64(*x2, *y2); + storeSample32(*x2, *y2); doFIR(x2, y2); advancePointer(); } @@ -586,13 +586,13 @@ public: } /** Simple zero stuffing and filter */ - void myInterpolateZeroStuffing(qint64 *x1, qint64 *y1, qint64 *x2, qint64 *y2) + void myInterpolateZeroStuffing(int32_t *x1, int32_t *y1, int32_t *x2, int32_t *y2) { - storeSample64(*x1, *y1); + storeSample32(*x1, *y1); doFIR(x1, y1); advancePointer(); - storeSample64(0, 0); + storeSample32(0, 0); doFIR(x2, y2); advancePointer(); } @@ -622,8 +622,8 @@ public: } protected: - qint64 m_even[2][HBFIRFilterTraits::hbOrder]; // double buffer technique - qint64 m_odd[2][HBFIRFilterTraits::hbOrder]; // double buffer technique + qint64 m_even[2][HBFIRFilterTraits::hbOrder]; // double buffer technique (qint32 to activate vectorization) + qint64 m_odd[2][HBFIRFilterTraits::hbOrder]; // double buffer technique int32_t m_samples[HBFIRFilterTraits::hbOrder][2]; // double buffer technique int m_ptr; @@ -705,7 +705,6 @@ protected: //#else int a = m_ptr/2 + m_size; // tip pointer int b = m_ptr/2 + 1; // tail pointer - for (int i = 0; i < HBFIRFilterTraits::hbOrder / 4; i++) { if ((m_ptr % 2) == 0) @@ -739,7 +738,7 @@ protected: sample->setImag(qAcc >> (HBFIRFilterTraits::hbShift -1)); } - void doFIR(qint64 *x, qint64 *y) + void doFIR(int32_t *x, int32_t *y) { qint64 iAcc = 0; qint64 qAcc = 0; diff --git a/sdrbench/CMakeLists.txt b/sdrbench/CMakeLists.txt index c51d83509..55c3b5449 100644 --- a/sdrbench/CMakeLists.txt +++ b/sdrbench/CMakeLists.txt @@ -1,5 +1,7 @@ project (sdrbench) +#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopt-info-vec-optimized") + set(sdrbench_SOURCES mainbench.cpp parserbench.cpp diff --git a/sdrbench/mainbench.h b/sdrbench/mainbench.h index 67b78cf7c..4d5871bef 100644 --- a/sdrbench/mainbench.h +++ b/sdrbench/mainbench.h @@ -61,7 +61,7 @@ private: std::uniform_real_distribution m_uniform_distribution; #ifdef SDR_RX_SAMPLE_24BIT - Decimators m_decimatorsII; + Decimators m_decimatorsII; #else Decimators m_decimatorsII; #endif