__attribute__ vector_size(16) 的含义是什么?

问题描述 投票:0回答:2

当我第一次看到

__attribute__
关键字时,我得到了一个 C 程序。看起来它是一个 GNU 关键字。在 GCC 的 this page 中,他们用
(vector_size(16))
属性解释了它的用法,说:

int foo __attribute__ ((vector_size (16)));

使编译器将 foo 的模式设置为 16 个字节,分为 int 大小的单元。假设是一个32位int(4个单位4个字节的向量),foo对应的模式将是V4SI。

这是什么意思?

foo
现在是否声明为 4 元素整数数组?如果是这样,那么有什么问题:

int foo[4];

gcc attributes
2个回答
7
投票

它与 SIMD 矢量化一起使用。 (不,它不会使

foo
成为数组。)

它记录在here,或者在 gcc 手册的“通过内置函数使用向量指令”部分(从 gcc 13.2.0 开始第 6.52 节)。


0
投票

不, foo 没有被声明为数组。在此语句中,int 类型指定基本类型,而属性指定变量的向量大小(以字节为单位)。

© www.soinside.com 2019 - 2024. All rights reserved.