   cross portablilty versus speed
  Hello,On Intel's website, I found a "small matrix" library using SIMD instructions. According to their benchmarks, their assembly routines seriously out perform the C versions of the same routines. In the interest of speed, is it worth using these assembly routines versus the C versions to sacrifice portability? Can I safely assume that the vc++ 2005 will provide enough optimizations to make the assembly versions not needed?LinkThanks for any advice,exorcist_bob   
  Have you found the vc++ 2005 routines too slow? If not, then they do provide enough optimizations. If you have found that they are too slow, why haven't you just tried Intel's library to see if it'll help you?   ;Quote:Original post by exorcist_bobIn the interest of speed, is it worth using these assembly routines versus the C versions to sacrifice portability?Yes, in the interest of speed, it is worth doing. In the interest of portability, it isn't. Which do you need the most?Also, keep in mind you can simply check whether SSE is supported on the cpu you're running on, and then only use the library if it is supported.(Or you can assume that your game won't ever need to run on a PowerPC, MIPS or other non-x86 architectures, and that people using Pentium 2 or Athlon (not XP) CPU's are below your system reqs. In that case, SSE will be supported, and there's no problem)Quote:Can I safely assume that the vc++ 2005 will provide enough optimizations to make the assembly versions not needed?You can safely assume that it won't do so.VC++ and GCC are both completely unable to vectorize code, even in the simplest cases. If you need vectorized code, you have to write it yourself.