Spec-Zone.ru › GCC 5

6.58.26 Встроенные функции 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-5.5.0/gcc/SPU-Built-in-Functions.html

Spec-Zone.ru

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