Spec-Zone.ru › GCC 6

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

GCC предоставляет расширения для процессора SPU, как описано в спецификации расширений языка Sony/Toshiba/IBM SPU. Реализация 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-6.5.0/gcc/SPU-Built-in-Functions.html

Spec-Zone.ru

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