Visual Studio 2010 and SSE 4.2

Visual Studio 2010 and SSE 4.2

本文关键字:SSE and Studio 2010 Visual      更新时间:2023-10-16

我想知道,在Visual Studio 2010中设置什么是必要的,以启用SSE 4.2 ?我想使用它,因为优化的POPCNT…

如果所有设置都正常,我该如何测试?

感谢

好吧,我试图使用你的解决方案,然而<nmmintric.h>不包括在vstudio2010和标准__popcnt需要int而不是std::bitset<>:(

任何想法?


谢谢你的提示与正确的标题。然而,似乎是:error C3861: '_mm_popcnt_u64': identifier not found,我发现只有_mm_popcnt_u32,但我不知道,如何使用它与bitset,或者我应该使用bitset<>.count ?如果没有编译器的新设置,它就不能工作,可以吗?

没人知道?

您必须在代码中写入_mm_popcnt_u64。此外,最好检查您运行的cpu是否支持该指令。

 #include <stdio.h>
 #include <nmmintrin.h>
 int main ()
 {
      unsigned __int64 a = 0x123456789ABCDEF0;
      int res = _mm_popcnt_u64(a);
      printf_s("Result res should be 32: %dn", res);
      return 0;
 }

MSDN示例for __popcnt:

http://msdn.microsoft.com/en-us/library/bb385231.aspx

没有什么特别的要求。

你可以使用intrinsic mm*并包含适当的头文件,如果你的系统支持给定的特性,它将编译。

编译器不会检查或接触内联汇编,所以无论你在里面放什么都将通过构建,尽管如果你的系统不支持指令,你的应用程序会崩溃。

除此之外,VS2010优化器只针对SSE2。