Ответ 1
Я не нашел способ сделать это в gcc (по состоянию на gcc 8.2.0).
Что касается clang, в 6.0.0 следующие опции показали некоторый успех:
clang -cc1 -fnative-half-type -fallow-half-arguments-and-returns
Опция -fnative-half-type
включает использование типа __fp16
(вместо того, чтобы предлагать их для плавания). Хотя опция -fallow-half-arguments-and-returns
__fp16
позволяет передавать значение __fp16
, нестандартный API-интерфейс следует соблюдать осторожность, чтобы не смешивать разные компиляторы.
Тем не менее, он не предоставляет математические функции, использующие типы __fp16
(он будет продвигать их в/из float
или double
).
Это было достаточно для моего случая использования.