c++ - 在 Mavericks 上编译 AVX2 程序

标签 c++ c gcc avx avx2

我尝试在我的 Mac OS 10.9 上使用 gcc 版本 4.9.0 20131201 编译一个虚拟 AVX2 程序

//dummy program
#include <immintrin.h> // AVX2
#include <stdio.h>
int main(int argc, char* argv[]) {
   __m256i reg =  _mm256_set1_epi8(1);
   __m256i result = _mm256_max_epu8(reg,reg);
   printf("%d",((int *)&result)[0]);
}

我是用这个命令编译的

gcc -mavx -O0 test.C

我得到了这个错误

In function 'int main(int, char**)':
avx2intrin.h:373:1: 
error: inlining failed in call to always_inline 
'__m256i _mm256_max_epu8(__m256i, __m256i)': target specific option mismatch
 _mm256_max_epu8 (__m256i __A, __m256i __B)

_mm256_max_epu8 使用 always_inline 属性。这是问题吗?

如果我用 O3 编译,我也会遇到这个问题。

我做错了什么?

最佳答案

要使用 AVX2 为目标编译,请使用 -mavx2

关于c++ - 在 Mavericks 上编译 AVX2 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20759570/

相关文章:

c - 在 freebsd 7 上快速修复 32 位(2GB 限制)fseek/ftell

c++ - 如何处理非客户区的按钮事件

c++ - 关闭管道 fd 时出现死锁

编程ic时编译器错误

gcc - 检查 Makefile 中的 gcc 版本?

c++ - 构造函数初始化列表评估顺序

c++ - 使用未声明的标识符与模板和继承后续

c++ - Variadic模板继承,成员函数重载

c++ - 确保 QByteArray 拥有它的内存 (QByteArray::fromRawData)

c - 这个变量的值在我的 C 代码中如何变化?