If you don't want to use assembly, you can use MMX and SSE intrisics compiler support. These are C functions/macros to allow the use of SSE instructions directly from C/C++. You can start with this introduction: http://www.codeproject.com/cpp/sseintro.asp . For a reference, you can go on MSDN website and search for intrinsic . Even if it's for Windows, it's still valid for GNU. Have a look at this files on your computer (in your system include dir): mmintrin.h -> MMX emmintrin.h -> SSE2 xmmintrin.h -> SSE pmmintrin.h -> SSE3
If you use it, don't forget to use compilation macros to offer alternative for processor that don't have these assembly instructions. Pascal PS From a personnal point of view, I don't know if these instructions are as fast as assembly. But they are quite easy to use, which improve my code writing speed ;-) On 4/23/07, Trond Danielsen <[EMAIL PROTECTED]> wrote:
Hi everyone, I've written a couple of blocks for GNU Radio, but am not satisfied with the performance. I am therefore thinking of using SIMD instructions. However, I am not that familiar with x86 assembly instructions, and finding the reference manual on Intel's website was not easy. I know that DSPs such as the Blackfin has special vector instructions that would make this very simple, but I am not sure about x86. I am also going to write a general purpose multiply and accumulate block that would benefit much from SIMD instructions. Any comments are appreciated. -- Trond Danielsen
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio