Как проверить, поддерживает ли ЦП набор инструкций SSE3?

Допустим ли следующий код для проверки, поддерживает ли ЦП набор инструкций SSE3?

Использование функции IsProcessorFeaturePresent () явно не работает в Windows XP (см. http: // msdn.microsoft.com/en-us/library/ms724482(v=vs.85).aspx).

bool CheckSSE3()
{
    int CPUInfo[4] = {-1};

    //-- Get number of valid info ids
    __cpuid(CPUInfo, 0);
    int nIds = CPUInfo[0];

    //-- Get info for id "1"
    if (nIds >= 1)
    {
        __cpuid(CPUInfo, 1);
        bool bSSE3NewInstructions = (CPUInfo[2] & 0x1) || false;
        return bSSE3NewInstructions;     
    }

    return false;      
}

59
задан Stiefel 9 April 2013 в 08:30
поделиться