Visual Studio相当于GCC的__attribute __((target("sse")))

Min*_*Wei 6 c++ visual-studio visual-studio-2013

这是我尝试将现有GCC项目迁移到Visual Studio时遇到的问题.

对于给定的功能void foo(),我通过SSE/AVX内在手工优化它,造成这个函数的两个版本void foo_sse()void foo_avx(),我用cpuid在运行时调用正确的版本.为了告诉GCC,void foo_sse()并且void foo_avx()应该分别使用-msse-mavx选项编译,我添加__attribute__((target("sse")))__attribute__((target("avx")))声明它们.

它适用于GCC,但我找不到VS的等价物.出于某些安全考虑,我必须将所有代码放在一个单独的cpp文件中以破坏符号名称,我不能简单地将两个函数放在两个不同的cpp文件中,并为它们提供不同的编译器选项.

如何在VS中基于每个函数指定编译器选项?提前致谢.