【问题标题】:Compiling AVX2 program on Mavericks在 Mavericks 上编译 AVX2 程序
【发布时间】:2013-12-24 10:50:38
【问题描述】:

我尝试在我的 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 编译也会遇到问题。

我做错了什么?

【问题讨论】:

  • gcc 4.9 正在开发中,所以我会向他们提出一个错误
  • 这个问题似乎离题了,因为它是关于预发布软件的,应该会有错误

标签: c++ c gcc avx avx2


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我可以用

    编译程序

    g++ -mavx2 -Wa,-q test.C

    在这个thread 中讨论了为什么还需要-Wa,q

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 1970-01-01
      • 2014-07-02
      • 2015-08-29
      • 1970-01-01
      • 2014-06-14
      • 2023-04-07
      • 2019-03-15
      • 2013-11-22
      相关资源
      最近更新 更多