Xcode 在发布模式下无法编译 <immintrin.h> - 抱怨 __builtin_ia32_emms()

Xcode in release mode fails to compile <immintrin.h> - complains about __builtin_ia32_emms()

我是 Xcode 的新手,正在使用 Xcode 12.4 (12D4e) 在 macOS Catalina 10.15.7 上为 macOS 开发 SIMD(SSE/AVX) 代码。
这段非常简单的代码可以在Debug方案中编译:

#include <immintrin.h>

int main(int argc, const char * argv[]) {
    return 0;
}

但在 Release Scheme 中,header 出错:“Too few arguments to function call, expected 2, have 0” for this line of "mmintrin.h" .

    __builtin_ia32_emms();

在Release scheme中如何编译?

如果您有任何 Intel 特定代码(例如 Intel 内在函数),则需要确保您的 Release 构建仅针对 x86-64 架构设置。在 Xcode 12 中,默认情况下是在发布版本中为 x86-64 和 Apple Silicon 构建,这会在构建的 Apple Silicon 部分遇到英特尔内部函数时导致虚假错误消息。