RISC-V has a draft extension for half-precision proposed last year[1],
so we think adding a new type for that would be great to make this
easier to use that extension.
We found there is _Float16
and __fp16
types are supported on GCC and
Clang, but _Float16
has C++ supporting issues on GCC site, so we think
support both types is a reasonable choice to us.
However we would like have slight different behavior for __fp16
other
than ACLE: The evaluation format of __fp16
set same as _Float16
,
which means no promotion are performed if there is no hardware half-precision
supported.
The only concern to us is it’s defined differnt with clang’s document,
so we would put this RFC patch here, to make sure it’s OK for make
__fp16
has differnt behavior between differnt targets.
This patch contains document change only, implementation would be in
other patches.
[1] https://github.com/riscv/riscv-isa-manual/pull/496
[2] https://github.com/riscv/riscv-elf-psabi-doc/pull/172
Corresponding phabricator entry for this RFC: