Что означает __attribute__ vector_size (16)? - PullRequest
4 голосов
/ 21 октября 2011

Я получил программу на C, где впервые увидел ключевое слово __attribute__. Кажется, это ключевое слово GNU. В этой странице GCC они объясняют его использование атрибутом (vector_size(16)), говоря:

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

заставляет компилятор установить режим для foo, равный 16 байтам, разделенным на единицы размера int. Предполагая 32-битное int (вектор из 4 блоков по 4 байта), соответствующий режим foo будет V4SI.

Что это значит? foo теперь объявлен как 4-элементный массив целых чисел? Если так, то что не так с просто:

int foo[4];

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Используется с векторизацией SIMD. (Нет, это не делает foo массивом.)

Это задокументировано здесь .

0 голосов
/ 21 октября 2011

Нет, foo не объявляется как массив.В этом операторе тип int определяет базовый тип, а атрибут - размер вектора переменной, измеряемый в байтах.

...