这是我尝试将现有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中基于每个函数指定编译器选项?提前致谢.