CPU が SSE3 命令セットをサポートしているかどうかを確認するには、次のコードで十分ですか?
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; }
残念ながら、提供されているコード スニペットには Windows XP では制限があります。これを克服し、より広範囲のシステムにわたって SSE3 サポートを正確に検出するには、より包括的なソリューションをお勧めします。
以下は、Windows XP とその他のオペレーティング システムの両方で信頼性の高い SSE3 検出を提供するアプローチです。
// Access CPUID instruction #ifdef _WIN32 #define cpuid(info, x) __cpuidex(info, x, 0) #else #include <cpuid.h> void cpuid(int info[4], int InfoType){ __cpuid_count(InfoType, 0, info[0], info[1], info[2], info[3]); } #endif // Detect SSE3 support bool HW_SSE3; int info[4]; cpuid(info, 0); int nIds = info[0]; if (nIds >= 0x00000001){ cpuid(info,0x00000001); HW_SSE3 = (info[2] & ((int)1 << 0)) != 0; }
以上が提供されたコードは CPU での SSE3 サポートを確認するのに十分ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。