JUCE & SSE3 Availability


#1

JUCE Implementation:

    /** Checks whether Intel SSE3 instructions are available. */
    static bool hasSSE3() noexcept              { return getCPUFlags().hasSSE3; }

    struct CPUFlags
    {
        CPUFlags();

        int numCpus;
        bool hasMMX     : 1;
        bool hasSSE     : 1;
        bool hasSSE2    : 1;
        bool hasSSE3    : 1;
        bool has3DNow   : 1;
    };

Windows:
juce_win32_SystemsStats.cpp:

SystemStats::CPUFlags::CPUFlags()
{
    //[...]
#ifdef PF_SSE3_INSTRUCTIONS_AVAILABLE
    hasSSE3  = IsProcessorFeaturePresent (PF_SSE3_INSTRUCTIONS_AVAILABLE) != 0; //Min OS: Win Vista
#else
    hasSSE3  = false;
#endif

Linux (guessed):
juce_linux_SystemsStats.cpp:

SystemStats::CPUFlags::CPUFlags()
{
    //[...]
    hasSSE3  = flags.contains ("sse3");

#2

Thanks! Yes, I’ve been meaning to add that, will do!