Spec-Zone.ru › GCC 4

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

GCC предоставляет расширения для процессора SPU, как описано в Спецификации расширений языка SPU Sony/Toshiba/IBM, которую можно найти по адресам http://cell.scei.co.jp/ или http://www.ibm.com/developerworks/power/cell/. Реализация 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-4.9.4/gcc/SPU-Built-in-Functions.html

Spec-Zone.ru

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