__m256 未知类型(clang 5.1/i5 CPU)?

Posted

技术标签:

【中文标题】__m256 未知类型(clang 5.1/i5 CPU)?【英文标题】:__m256 unknown type (clang 5.1/i5 CPU)? 【发布时间】:2014-07-03 15:37:34 【问题描述】:

我刚开始尝试内在函数。我设法在使用 Clang 5.1 的 Mac 上使用 __m128 成功编译了一个程序。这台 Mac 上的 CPU 是 Intel core i5 M540。

当我尝试使用 __m256 编译相同的代码时,我收到以下消息:

simple.cpp:4:2: error: unknown type name '__m256'
    __m256 A;

代码如下所示:

#include <immintrin.h>
int main()

    __m256 A;
    return 0;

这是用于编译它的命令:

c++ -o simple simple.cpp -march=native -O3

只是因为我的 CPU 太旧,无法支持 AVX 指令集吗?我使用的所有选项(在命令行上)是否正确?我签入了 immintrin.h 包含文件,它确实调用了另一个包含文件,该文件似乎正在定义 AVX 内部函数。如果问题很幼稚或术语被滥用,我深表歉意,正如我所说,我是这个话题的新手。

【问题讨论】:

你的意思是540M?如果这是正确的,那么 CPU 不支持 AVX,因为它是一个非常古老的 Nehalem。 AVX 仅在 Sandy Bridge 之后可用 非常感谢。它是 M 540,当我执行 sysctl -n machdep.cpu.brand_string 时,是的,我猜它是 540M。如果你写你的评论作为答案,我会接受。 【参考方案1】:

Intel 540M CPU 在引入 AVX 时出现在 Sandy Bridge 之前的 Westmere 微架构中(抱歉评论中的错误),因此它不支持 AVX。 “核心 i5”一词涵盖了从 Nehalem 到 Haswell(当前)的广泛架构,因此使用核心 i5 CPU 并不意味着您将支持所有指令集,如最新的指令集。

【讨论】:

以上是关于__m256 未知类型(clang 5.1/i5 CPU)?的主要内容,如果未能解决你的问题,请参考以下文章

错误:未知类型名称 '__darwin_wctype_t' typedef __darwin_wctype_t wctype_t 在 MacOS 上使用 Clang 编译

多维 __m256i 数据类型对齐问题

将 __m256i 存储为整数

将 __m256i 存储为整数

从“int”类型分配给“__m256d”类型时不兼容的类型

SSE/AVX 向量类型的差异