• 大小: 337KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: SSE  AVX  

资源简介

完整的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.embed.manifest

     文件        472  2014-08-06 10:34  AVX_test2\Debug\AVX_test2.exe.embed.manifest.res

     文件        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\link-cvtres.read.1.tlog

     文件          2  2014-08-06 10:34  AVX_test2\Debug\link-cvtres.write.1.tlog

     文件          2  2014-08-06 10:34  AVX_test2\Debug\link.8440-cvtres.read.1.tlog

     文件          2  2014-08-06 10:34  AVX_test2\Debug\link.8440-cvtres.write.1.tlog

     文件          2  2014-08-06 10:34  AVX_test2\Debug\link.8440.read.1.tlog

     文件          2  2014-08-06 10:34  AVX_test2\Debug\link.8440.write.1.tlog

     文件       1394  2014-08-06 10:34  AVX_test2\Debug\link.command.1.tlog

     文件       3234  2014-08-06 10:34  AVX_test2\Debug\link.read.1.tlog

     文件        576  2014-08-06 10:34  AVX_test2\Debug\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论