Spec-Zone.ru › GCC 8

6.59.29 Встроенные функции SPU

GCC предоставляет расширения для процессора SPU, как описано в Спецификации расширений языка SPU Sony/Toshiba/IBM. Реализация GCC отличается по нескольким аспектам.

  • Не поддерживается необязательное расширение для указания векторных констант в скобках.
  • Векторная инициализация не требует приведения типа, если векторная константа имеет тот же тип, что и переменная, которую она инициализирует.
  • Если signed или unsigned опущены, знаковый атрибут типа вектора соответствует знаковому атрибуту базового типа по умолчанию. Значение по умолчанию зависит от операционной системы, поэтому в портативном коде следует всегда указывать знаковый атрибут.
  • По умолчанию добавляется ключевое слово __vector. Макрос vector определен в <spu_intrinsics.h> и может быть удален.
  • GCC позволяет использовать имя typedef в качестве спецификатора типа для векторного типа.
  • Для языка C перегруженные функции реализуются с помощью макросов, поэтому следующее не работает:
    spu_add ((vector signed int){1, 2, 3, 4}, foo);

    Поскольку spu_add является макросом, векторная константа в примере обрабатывается как четыре отдельных аргумента. Для корректной работы оберните весь аргумент в скобки.

  • Расширенная версия __builtin_expect не поддерживается.

Примечание: Поддерживается только интерфейс, описанный в указанной спецификации. Внутренне GCC использует встроенные функции для реализации необходимой функциональности, но они не поддерживаются и могут быть изменены без предварительного уведомления.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/SPU-Built-in-Functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API