判断cpu是不是支持SSE42指令集

VS编译64位C++程序,不支持嵌入式汇编

可以使用intrinsic函数判断cpu是不是支持SSE42

	bool isSupportSSE42()
	{
		const int BIT_C_SSE42 = 0x00100000;   // bit 20  
		int CPUInfo[4] = {0};

		//CPUInfo参数用于接收输出的eax, ebx, ecx, edx这四个寄存器.
		//这个函数的具体参考资料
		//https://msdn.microsoft.com/en-us/library/hskdteyh(v=vs.140).aspx
		__cpuid(CPUInfo,1);

		if ((CPUInfo[2] & BIT_C_SSE42) == 0)
		{
			return false;
		}

		//这里假设操作系统支持SSE42特性

		return true;
	}


 

你可能感兴趣的:(性能或算法,C++)