資源簡介
完整的vs2010工程,檢測你CPU支持的SIMD指令集類別

代碼片段和文件信息
//?AVX_test2.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
//int?_tmain(int?argc?_TCHAR*?argv[])
//{
// return?0;
//}
#include?
#include?
#include?
#include?
#if?_MSC_VER?>=1400 //?VC2005才支持intrin.h
#include? //?所有Intrinsics函數
#else
#include? //?MMX?SSE?SSE2
#endif
//?CPUIDFIELD
typedef?INT32?CPUIDFIELD;
#define??CPUIDFIELD_MASK_POS 0x0000001F //?位偏移.?0~31.
#define??CPUIDFIELD_MASK_LEN 0x000003E0 //?位長.?1~32
#define??CPUIDFIELD_MASK_REG 0x00000C00 //?寄存器.?0=EAX?1=EBX?2=ECX?3=EDX.
#define??CPUIDFIELD_MASK_FIDSUB 0x000FF000 //?子功能號(低8位).
#define??CPUIDFIELD_MASK_FID 0xFFF00000 //?功能號(最高4位?和?低8位).
#define?CPUIDFIELD_SHIFT_POS 0
#define?CPUIDFIELD_SHIFT_LEN 5
#define?CPUIDFIELD_SHIFT_REG 10
#define?CPUIDFIELD_SHIFT_FIDSUB 12
#define?CPUIDFIELD_SHIFT_FID 20
#define?CPUIDFIELD_MAKE(fidfidsubregposlen) (((fid)&0xF0000000)?\
|?((fid)< |?((fidsub)< |?((reg)< |?((pos)< |?(((len)-1)< )
#define?CPUIDFIELD_FID(cpuidfield) (?((cpuidfield)&0xF0000000)?|?(((cpuidfield)?&?0x0FF00000)>>CPUIDFIELD_SHIFT_FID)?)
#define?CPUIDFIELD_FIDSUB(cpuidfield) (?((cpuidfield)?&?CPUIDFIELD_MASK_FIDSUB)>>CPUIDFIELD_SHIFT_FIDSUB?)
#define?CPUIDFIELD_REG(cpuidfield) (?((cpuidfield)?&?CPUIDFIELD_MASK_REG)>>CPUIDFIELD_SHIFT_REG?)
#define?CPUIDFIELD_POS(cpuidfield) (?((cpuidfield)?&?CPUIDFIELD_MASK_POS)>>CPUIDFIELD_SHIFT_POS?)
#define?CPUIDFIELD_LEN(cpuidfield) (?(((cpuidfield)?&?CPUIDFIELD_MASK_LEN)>>CPUIDFIELD_SHIFT_LEN)?+?1?)
//?取得位域
#ifndef?__GETBITS32
#define?__GETBITS32(srcposlen) (?((src)>>(pos))?&?(((UINT32)-1)>>(32-len))?)
#endif
#define?CPUF_SSE4A CPUIDFIELD_MAKE(0x800000010261)
#define?CPUF_AES CPUIDFIELD_MAKE(102251)
#define?CPUF_PCLMULQDQ CPUIDFIELD_MAKE(10211)
#define?CPUF_AVX CPUIDFIELD_MAKE(102281)
#define?CPUF_AVX2 CPUIDFIELD_MAKE(70151)
#define?CPUF_OSXSAVE CPUIDFIELD_MAKE(102271)
#define?CPUF_XFeatureSupportedMaskLo CPUIDFIELD_MAKE(0xD00032)
#define?CPUF_F16C CPUIDFIELD_MAKE(102291)
#define?CPUF_FMA CPUIDFIELD_MAKE(102121)
#define?CPUF_FMA4 CPUIDFIELD_MAKE(0x8000000102161)
#define?CPUF_XOP CPUIDFIELD_MAKE(0x8000000102111)
//?SSE系列指令集的支持級別.?simd_sse_level?函數的返回值。
#define?SIMD_SSE_NONE 0 //?不支持
#define?SIMD_SSE_1 1 //?SSE
#define?SIMD_SSE_2 2 //?SSE2
#define?SIMD_SSE_3 3 //?SSE3
#define?SIMD_SSE_3S 4 //?SSSE3
#define?SIMD_SSE_41 5 //?SSE4.1
#define?SIMD_SSE_42 6 //?SSE4.2
const?char* simd_sse_names[]?=?{
“None“
“SSE“
“SSE2“
“SSE3“
“SSSE3“
“SSE4.1“
“SSE4.2“
};
//?AVX系列指令集的支持級別.?simd_avx_level?函數的返回值。
#define?SIMD_AVX_NONE 0 //?不支持
#define?SIMD_AVX_1 1 //?AVX
#define?SIMD_AVX_2 2 //?AVX2
const?char* sim
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9546??2014-05-15?17:52??AVX_test2\AVX_test2.cpp
?????文件???????4370??2014-05-15?17:49??AVX_test2\AVX_test2.vcxproj
?????文件???????1313??2014-05-15?17:49??AVX_test2\AVX_test2.vcxproj.filters
?????文件????????143??2014-05-15?17:49??AVX_test2\AVX_test2.vcxproj.user
?????文件????????406??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.exe.em
?????文件????????472??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.exe.em
?????文件????????381??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.exe.intermediate.manifest
?????文件?????????52??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.lastbuildstate
?????文件???????3571??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.log
?????文件??????41411??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.obj
?????文件????1179648??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.pch
?????文件??????????0??2014-08-06?10:34??AVX_test2\Debug\AVX_test2.write.1.tlog
?????文件????????208??2014-08-06?10:34??AVX_test2\Debug\AVX_test2_manifest.rc
?????文件???????1306??2014-08-06?10:34??AVX_test2\Debug\cl.command.1.tlog
?????文件??????17384??2014-08-06?10:34??AVX_test2\Debug\CL.read.1.tlog
?????文件????????514??2014-08-06?10:34??AVX_test2\Debug\CL.write.1.tlog
?????文件??????????2??2014-08-06?10:34??AVX_test2\Debug\li
?????文件??????????2??2014-08-06?10:34??AVX_test2\Debug\li
?????文件??????????2??2014-08-06?10:34??AVX_test2\Debug\li
?????文件??????????2??2014-08-06?10:34??AVX_test2\Debug\li
?????文件??????????2??2014-08-06?10:34??AVX_test2\Debug\li
?????文件??????????2??2014-08-06?10:34??AVX_test2\Debug\li
?????文件???????1394??2014-08-06?10:34??AVX_test2\Debug\li
?????文件???????3234??2014-08-06?10:34??AVX_test2\Debug\li
?????文件????????576??2014-08-06?10:34??AVX_test2\Debug\li
?????文件????????352??2014-08-06?10:34??AVX_test2\Debug\mt.command.1.tlog
?????文件????????128??2014-08-06?10:34??AVX_test2\Debug\mt.read.1.tlog
?????文件????????238??2014-08-06?10:34??AVX_test2\Debug\mt.write.1.tlog
?????文件????????460??2014-08-06?10:34??AVX_test2\Debug\rc.command.1.tlog
?????文件????????210??2014-08-06?10:34??AVX_test2\Debug\rc.read.1.tlog
............此處省略17個文件信息
- 上一篇:產生式系統與動物識別
- 下一篇:st7565 驅動 + LCD多層菜單 V1.2.1
評論
共有 條評論