当我使用GCC并设置命令行参数-mavx时,编译器将在源代码中自动定义__AVX__
。
这样我可以检测项目是否使用AVX指令构建,如果不是回到另一个代码路径。
有没有办法和Clang做同样的事情?
谢谢, 克里斯托夫
答案 0 :(得分:6)
正确的测试在__AVX__
,它与clang和gcc一样好用。它甚至适用于Visual Studio ......
答案 1 :(得分:2)
llvm / tools / lib / Basic / Targets.cpp中的源代码:
switch (SSELevel) {
....
case AVX:
Builder.defineMacro("__AVX__");
...
答案 2 :(得分:0)
使用Visual C ++,定义为_AVX_
而不是__AVX__
。
我实际上正在检查__AVX__
,但我没有成功。我可能遇到项目生成器(CMake)的问题,无法正确设置标志以使用AVX。
__AVX__
正在为VC,GCC和Clang工作。 \ O /
谢谢! 克里斯托夫