Glancing at the tutorial, it looks like JUCE_USE_SIMD checks the architecture at compile time, not run time. Does this mean that if I build on a newer x86_64 machine with AVX, and JUCE chooses AVX, then my plugin will not run properly on an older machine that only supports SSE?
If this is the case, is there a way to force JUCE to use a particular minimum standard, like SSE4.2 ?
Thanks
2 Likes
When it comes to the SIMDRegister class, I know that If you don’t pass any specific compiler flags, JUCE will only use fully portable SSE instructions no matter what your build machine supports. To make it use AVX or some later SSE instructions you have to pass the according flags to your compiler. So it does not generate non portable instructions unless you explicitly tell it to do so. I’m pretty sure that this should also apply to all other SIMD related things in the JUCE codebase.