Spec-Zone.ru › GCC 7

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

Spec-Zone.ru

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